乔治 马丁
2005
365.00
J K. 罗琳
2005
48.98
挖掘机小王子
2048
99.00
尼古拉斯-赵四
2003
39.95
在上面的xml
语法中存在父子,先辈等关系。
XPath介绍
XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML/HTML 文档中对元素和属性进行遍历,并提取相应元素。
也是一种数据提取方式,只不过针对的是HTML/XML数据,因为爬虫主要和HTML页面打交道。
XPath匹配规则
下表是XPath常用的规则:
lxml库
lxml 是一个Python第三方模块。主要的功能是如何解析和提取 HTML/XML 数据。
lxml和正则类似,是一款高性能的 Python HTML/XML 解析器,我们可以利用之前学习的XPath语法,来快速的定位特定元素以及节点信息。
- 安装:
pip install lxml
在线安装不成功就采用离线安装。
再安装 parsel 时会自动安装 lxml,这里就不需要再次安装了。
使用lxml模块
初始化生成一个XPath解析对象,同时可以自动补全残缺的HTML标签。传入网页源码。
from lxml import etree
string = “”"
Python编程
2003
39.95
“”"
再解析之前必须先转化一下
html = etree.HTML(string)
返回结果是列表
result = html.xpath(“//book[contains(@cover,‘paper’)]/title/text()”)
result = html.xpath(“//book[4]/title/text()”)
print(result)
因为 parsel
对 lxml
进行了, 所以可以直接再 parsel 中无缝切换使用 xpath 。
使用XPath选取指定内容。括号里面书写XPath语法规则。返回列表。
-- coding: utf-8 --
import requests
import parsel
headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36’
}
response = requests.get(‘https://maoyan.com/board/4?offset=0’, headers=headers)
html = response.text
%% 选择任意节点
sel = parsel.Selector(html)
提取 p 标签
ps = sel.xpath(‘//p’)
for p in ps:
print(p.get())
‘’’
猫眼电影:
https://maoyan.com/board/4?offset=20
函数式:
-
获取(请求)一页的函数
-
定义解析函数(解析一页)
-
写入文件函数
-
循环函数
-
python学习交流群:1136201545
‘’’
import json
import requests
from lxml import etree
获取响应
def getOnePage(url):
‘’‘获取一页的响应的函数’‘’
response = requests.get(url)
return response.text
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
e862fe4e9.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)