欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用xpath爬取百度贴吧内容返回空列表的问题

程序员文章站 2024-01-03 13:12:28
...

利用xpath爬取百度贴吧内容返回空列表

问题描述:

用etree爬取百度贴吧的时候,用xpath获取不到内容
(虽然是个小问题但也让我花了好久!)

如下:想要获取图下方框中的内容

利用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,但是检查了很久知道写的xpath没问题,于是就把原HTML文件下载下来查看源代码。

结果在HTML文件里发现想要获取的内容全被注释了!代码都变成了灰色:
利用xpath爬取百度贴吧内容返回空列表的问题


百思不得其解的我在网上查了后发现是设置的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;

上一篇:

下一篇: