如何解决Python爬虫运行时出现TabError:缩进中制表符与空格使用不一致问题
问题1:TabError报错解决
这个报错是Python的缩进规则触发的,你代码里混用了制表符(Tab)和空格来做缩进,Python要求同一层级的缩进必须统一,要么全用Tab,要么全用4个空格。你第二层for循环下面的ques、print两行首先缩进层级就不符合要求,把这部分的缩进全部替换成统一的4个空格即可解决报错。
问题2:爬取逻辑修正
你的整体思路方向是对的,但代码里有3处逻辑错误:
- 第二层查找li标签时用了全局的
soup.find_all,应该换成当前循环到的question(也就是你拿到的ul对象)去查找,不然每次都是从整个页面根节点找所有符合条件的li,会重复抓取 - 你写的li类名
questions-content first odd是多个动态类名的组合,只会匹配排序为奇数的第一个li,会漏掉其他提问,直接匹配questions-content这一个类名即可 - 提取a标签文本时用了
question.find,应该换成当前循环到的content(li对象)去查找,不然每次都拿ul下第一个a标签的内容,所有输出都会重复
修正后的参考代码
from bs4 import BeautifulSoup import requests url = "https://forum.bouyguestelecom.fr/questions/browse?utf8=%E2%9C%93&flow_state=published&search=&order=created_at.desc" req = requests.get(url).text soup = BeautifulSoup(req, 'html.parser') questions = soup.find_all("ul", class_="questions") for question in questions: # 从当前ul里找所有提问li contents = question.find_all("li", class_="questions-content") for content in contents: # 从当前li里找对应a标签 ques = content.find("a", class_="content_permalink").text print(ques)
内容的提问来源于stack exchange,提问作者ossama assaghir
相关产品推荐
相关产品推荐

