爬贴吧返回链接列表为空

在使用Python3爬取tieba.baidu.com时,遇到lxml库通过xpath获取href值返回空列表的困扰。问题出现在`loadPage`函数,原本的请求包含headers,但移除headers后正常工作。原因可能与网站反爬机制有关,更改或移除user-agent并未影响结果,仅不带headers的request能成功获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬虫-xpath爬去tieba.baidu.com

工具:python3

核心知识点:

1)lxml包不能用pip下载,要使用apt-get,因为里面有其他语言编写的文件

2)urlopen返回的请求是html文件,要使用 content = etree.HTML(html)来将其转换为xml,html dom格式

3)使用content.xpath()返回一个匹配成功的列表集合

4)构造新的url,进入这个url,进行数据爬取

问题:在执行loadPage时遇到了问题,

link_list = content.xpath('//div[@class="t_con cleafix"]/div/div/div/a/@href')

这个匹配规则在xpath helper中能够找到对应的href值:
在这里插入图片描述
但是在执行程序link_list = content.xpath(’//div[@class=“t_con cleafix”]/div/div/div/a/@href’)是,返回空列表
在这里插入图片描述
按理说是没有错误的,原因是什么呢?

request = urllib.request.Request(link,headers=self.headers)改为
request = urllib.request.Request(link)就好了!
很奇怪啊,后来我尝试修改user-agent的值,也是同样的结果:只有loadPage方法的request请求没有headers时才能正常使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值