【安全合规】python爬虫从0到1 -xpath网页解析(lxml库)

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 而我们仅仅只是需要该网页中的部分内容

文章目录

前言

在我们抓取网页内容的时候,通常是抓取一整个页面的内容,而我们仅仅只是需要该网页中的部分内容,那该如何去提取呢?本章就带你学习xpath插件的使用。去对网页的内容进行提取。


(一)xpath是什么

xpath是一门在XML文档中查找信息的语言,xpath可用来在XML 文档中对元素和属性进行遍历,主流的浏览器都支持xpath,因为html页面在DOM中表示为XHTML文档。

xpath语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点。从而找到我们想要的数据。


首先我们需要在chrome浏览器中安装xpath插件。

可以到谷歌应用商店搜索下载。image.png

(二)xpath的基本语法

  1. 路径查询。image.png
  2. 谓词查询image.png
  3. 属性查询image.png
  4. 模糊查询image.png
  5. 内容查询image.png

(三) lxml

lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

在使用前我们需要在pycharm里安装lxml库。

在终端输入指令即可:image.png

(四)lxml库的使用

  1. 导入lxml.etree
from lxml import etree
  1. 解析本地文件
tree = etree.parse(xxx.html) #解析本地文件
  1. 解析服务器响应文件
tree = etree.HTML(content)  #解析网页文件
  1. 返回结果
result = tree.xpath('//div/div/@aria-label')[0]

注:xpath返回的结果类型为列表,当结果有许多值时我们可以使用下标来取我们想要的值。

(五)实例演示

import urllib.request
from lxml import etree
import urllib.parse
url ='https://www.baidu.com/s?'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
cre_data = {
    'wd' : '这里写关键词'
}
data = urllib.parse.urlencode(cre_data)
url = url + data
request = urllib.request.Request(url = url , headers = headers )
response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
print(content)
# tree = etree.parse(xxx.html) #解析本地文件
tree = etree.HTML(content)  #解析网页文件
result = tree.xpath('//div/div/@aria-label')[0]
print(result)
相关文章
|
27天前
|
XML JSON 数据库
Python的标准库
Python的标准库
167 77
|
28天前
|
XML JSON 数据库
Python的标准库
Python的标准库
48 11
|
28天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
66 8
|
2月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
123 6
|
5月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
263 4
|
6月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
104 4
|
5月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
3月前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
220 66
|
2月前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
2月前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
101 4