爬取网页时,IndexError: list index out of range的错误原因及解决方案(针对上一篇博客遇到的问题进行总结。)
在爬取糗事百科时,遇到了这个问题。研究后发现是使用Xpath定位目标内容时,框架定义错了。
# 解析详情页的内容
def parse_detail(url):
qiushi = {}
resp = requests.get(url, headers=Headers)
text = resp.content.decode("utf-8", "ignore")
html = etree.HTML(text)
DivE = html.xpath("//div[@class='col1 new-style-col1']")[0]
title = DivE.xpath("//h1[@class='article-title']/text()")[0]
qiushi["title"] = title
content = DivE.xpath("//div[@class='content']/text()")[0]
qiushi["content"] = content
return qiushi
这里我的目标是爬取段子的标题和内容。但是最开始,因为对Xpath使用不熟悉,认为爬取主页的框架就可以,导致了一直报错。
所以,在爬取时,我们应该首先爬取详情页的内容,找到详情页的框架
然后问题解决,成功爬取到段子标题和内容。