Python爬虫拼接URL时报TypeError: 列表无法与字符串拼接问题求解
报错原因
该错误的本质是执行拼接操作url + str(page)时,url变量的数据类型为列表而非预期的字符串,Python不支持列表和字符串直接拼接。
通常出现该问题是因为你实际运行代码中的urls列表并不完全是字符串元素:要么是生成urls的逻辑错误,导致某个元素被赋值为嵌套列表;要么是代码缩进错误导致url变量被意外覆盖为列表类型。
修复方案
- 先排查
urls列表的元素类型,确认所有元素均为字符串
在遍历前加入以下调试代码,定位异常元素:
for index, item in enumerate(urls): print(f"索引{index}的元素值:{item},类型:{type(item)}")
如果打印结果中存在类型为<class 'list'>的元素,修正你生成urls列表的逻辑,保证每个基础URL都是独立字符串。
- 修正后的完整业务代码(适配10个基础URL、每个爬20页的需求)
# 此处替换为你实际的浏览器初始化逻辑 browser = webdriver.Chrome() # 确保urls列表所有元素都是字符串,无嵌套结构 urls = ["url1&page=", "url2&page=", "url3&page="] for base_url in urls: # range(20)对应页码0-19,共20页,若需要页码从1开始调整为range(1,21)即可 for page in range(20): # 用f-string拼接更稳妥,避免类型问题 target_url = f"{base_url}{page}" browser.get(target_url) # 此处补充你原本的新闻元数据提取逻辑
额外注意:你给出的示例代码中for url in urls:行前有多余的缩进,也可能导致变量作用域异常,需要检查删除不必要的缩进。
内容的提问来源于stack exchange,提问作者Mandi
相关产品推荐
相关产品推荐

