利用xpath爬取百度贴吧内容返回空列表的问题
程序员文章站
2024-01-03 13:12:28
...
利用xpath爬取百度贴吧内容返回空列表
问题描述:
用etree爬取百度贴吧的时候,用xpath获取不到内容
(虽然是个小问题但也让我花了好久!)
如下:想要获取图下方框中的内容
写的爬虫获取页面内容代码:
import requests
from lxml import etree
base_url = "https://tieba.baidu.com/f?kw=英雄联盟&ie=utf-8&pn=0"
head = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
}
response = requests.get(base_url,headers=head)
ele = etree.HTML(response.text)
title = ele.xpath('//*[@id="thread_list"]/li[2]/div/div[2]/div[1]/div[1]/a/text()')
print(title)
结果打印出来的是空列表:
起初以为是自己没找到正确的xpath,但是检查了很久知道写的xpath没问题,于是就把原HTML文件下载下来查看源代码。
结果在HTML文件里发现想要获取的内容全被注释了!代码都变成了灰色:
百思不得其解的我在网上查了后发现是设置的User-Agent有问题
就是加了这个Chrome的header就会导致页面中大部分html标签被放在了注释里面,接下来找不到对应的标签。
解决办法:
(1)不添加header(有可能获取不到)
(2)把Chrome的header换成IE的header
就可以啦!
IE浏览器的User-Agnet:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;