迭代URL字符串列表报错:Selenium提示url参数必须为字符串类型
问题原因
你打印的restaurant_urls_li是嵌套列表结构,每个元素都是包含单个URL的子列表(如['xxx.html']),不是字符串。问题出在取数逻辑:restaurant_urls_li = restaurant_urls_li.iloc[:,-1:] 这里末尾带了冒号,取到的是二维的DataFrame结构,调用tolist()后就会生成嵌套列表,传给wd.get()的时候参数是列表而非要求的字符串,所以触发报错。
解决方法
两种方案任选其一即可:
- 方案1:修改取数逻辑,直接提取单列作为一维Series,再转列表
把
restaurant_urls_li = restaurant_urls_li.iloc[:,-1:] restaurant_urls_li = restaurant_urls_li.values.tolist()
替换为
restaurant_urls_li = restaurant_urls_li.iloc[:,-1].values.tolist()
去掉-1后面的冒号,取到的就是单列一维数组,转列表后每个元素都是URL字符串,遍历的时候可以直接传给wd.get()。
- 方案2:遍历的时候取子列表的第一个元素
把循环里的
wd.get(restaurant_url)
改成
wd.get(restaurant_url[0])
直接提取嵌套列表里的URL字符串即可。
内容的提问来源于stack exchange,提问作者Gloria Dalla Costa
相关产品推荐
相关产品推荐

