网页抓取数据(如何通过xpath访问一个网站获取网页信息的信息打印出来)
优采云 发布时间: 2021-12-23 10:06网页抓取数据(如何通过xpath访问一个网站获取网页信息的信息打印出来)
Xpath 通常用于抓取网页的过程中,根据 html 中标签的路径来过滤内容。今天我们就来看看如何通过xpath获取网页信息。这里的例子很简单,访问一个网站取回列表中的信息,打印出来,然后开始。
准备
在chrome浏览器中安装xpath helper插件
如果无法访问chrome商店,可以在网上搜索chrome xpath helper插件并下载。将下载的文件拖放到 chrome 扩展程序中进行安装。安装完成后,您会在浏览器上看到一个小十字图标。这是xpath helper的启动图标,一键启动。启动后,你会看到一个浮动窗口
可以分别输入xpath表达式和结果。
这里需要用到python的两个组件requests和lxml,因为我用的是pycharm的ide工具,实现了一个虚拟的python环境,所以组件的安装需要在ide中操作。
在首选项中选择要安装的组件。
在弹出的窗口中搜索并选择要安装的组件。
网站分析
先打开一个你要爬取的网站,分析网站的内容。
如上图所示,我们需要返回*敏*感*词*部分的列表,即需要访问的树结构的html标签。
我们需要返回书单中的书名。这里,标题使用的标签是h4,下面的链接使用a,这里使用text()返回a中的内容
//h4/a/text()
当我们通过xpath helper输入xpath数据时,可以在右侧窗口中显示相应的内容。这可以证明我们的xpath是有效的。
编码
借助xpath,编码很容易,引入etree和requests,使用requests生成get请求,将返回的响应发送给etree进行xpath分析,最后打印结果。
from lxml import etree
import requests
from fake_useragent import UserAgent
url = "https://www.qidian.com/rank/yuepiao?chn=21"
headers = {
"User-Agent": UserAgent().random
}
response = requests.get(url, headers=headers)
print(response.text)
e = etree.HTML(response.text)
names = e.xpath('//h4/a/text()')
print(names)
完成工作,如果您愿意,可以转发。谢谢大家。