前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入


使用XPath提取猫眼电影排行榜前100名。https://maoyan.com/board/4

XPath数据提取

XML介绍

XML称为可扩展标记语言,XML是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。非常类似HTML。

HTML 和 XML的区别在于HTML主要用来显示数据,XML是用来传输数据。

XML都是标签闭合的。例如: … 成对出现。

<?xml version="1.0" encoding="utf-8"?><bookstore><book category="奇幻"><title lang="ch">冰与火之歌</title><author>乔治 马丁</author><year>2005</year><price>365.00</price></book><book category="童话"><title lang="ch">哈利波特与死亡圣器</title><author>J K. 罗琳</author><year>2005</year><price>48.98</price></book><book category="编程"><title lang="ch">Python编程-从入门到放弃</title><author>挖掘机小王子</author><year>2048</year><price>99.00</price></book><book category="web" cover="paperback"><title lang="en">Python编程-从看懂到看开</title><author>尼古拉斯-赵四</author><year>2003</year><price>39.95</price></book></bookstore>

在上面的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 etreestring = """<book category="web" cover="paperback"><title lang="en">Python编程-从看懂到看开</title><author>Python编程</author><year>2003</year><price>39.95</price></book>
"""# 再解析之前必须先转化一下
html = etree.HTML(string)
# 返回结果是列表
result = html.xpath("//book[contains(@cover,'paper')]/title/text()")
result = html.xpath("//book[4]/title/text()")print(result)

因为 parsellxml 进行了, 所以可以直接再 parsel 中无缝切换使用 xpath 。

使用XPath选取指定内容。括号里面书写XPath语法规则。返回列表。

# -*- coding: utf-8 -*-
import requests
import parselheaders = {'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())

案例:XPath提取猫眼电影

'''
猫眼电影:
https://maoyan.com/board/4?offset=20函数式:1. 获取(请求)一页的函数2. 定义解析函数(解析一页)3. 写入文件函数4. 循环函数5. python学习交流群:1136201545
'''
import json
import requests
from lxml import etree# 获取响应
def getOnePage(url):'''获取一页的响应的函数'''response = requests.get(url)return response.text# 解析响应 --> 结果
def parseOnePage(text):# 初始化解析html = etree.HTML(text)# 里面有所有的数据 先选择上一层  这一层里面包含所有数据 然后循环遍历data = html.xpath('//dl[@class="board-wrapper"]')# 遍历提取所有的元素for dat in data:print(dat)# 继续选取# 标题title = dat.xpath('.//div//a/text()')# 主演star = dat.xpath('.//p[@class="star"]/text()')# 时间releasetime = dat.xpath('//p[@class="releasetime"]/text()')for tit, sta, rel in zip(title, star, releasetime):# 在函数里面遇到return就终止# 生成器yield {'电影名字': tit,'主演': sta.strip(),'上映时间': rel}def save2File(data):# with open('maoyan66.txt', 'a', encoding='utf-8') as fp:#     fp.write(data+'\n')with open('maoyan66.txt', 'a', encoding='utf-8') as fp:fp.write(json.dumps(data, ensure_ascii=False)+'\n')if __name__ == "__main__":for page in range(10):# 一页网址url = f'https://maoyan.com/board/4?offset={page*10}'# 调用r = getOnePage(url)# 解析数据 返回生成器result = parseOnePage(r)for res in result:# with open('maoyan.txt','a',encoding='utf-8') as fp:#     # 打印到文件#     print(str(res), file=fp)save2File(str(res))

使用Python:XPath提取猫眼电影相关推荐

  1. Python:XPath提取猫眼电影(转载)

    XPath数据提取 XML介绍 XML称为可扩展标记语言,XML是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者 ...

  2. 使用Xpath提取猫眼电影标题,演员及剧情信息

    from lxml import etree import requests from time import sleep import os from fake_useragent import U ...

  3. python爬虫实战——猫眼电影案例

    python爬虫实战--猫眼电影案例 ·背景   笔者上一篇文章<基于猫眼票房数据的可视化分析>中爬取了猫眼实时票房数据,用于展示近三年电影票房概况.由于数据中缺少导演/演员/编剧阵容等信 ...

  4. python爬取猫眼电影数据

    每天一点点,记录学习每一步 近期爬虫项目: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:python爬虫爬取百度贴吧图片,requests方法 3:pyt ...

  5. (伪)Python爬取猫眼电影(反反爬虫过程中遇到的坑)

    Python爬取猫眼电影 1.打开一个猫眼电影的URL,例如本月的较火的电影<毒液:致命守护者>http://maoyan.com/films/42964 直接F12,查看审核元素,发现上 ...

  6. python猫眼电影分析_用Python 爬取猫眼电影数据分析《无名之辈》

    前言 作者: 罗昭成 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e7 ...

  7. 利用python爬取猫眼电影,分析《大侦探皮卡丘》|凹凸数读

    利用python爬取猫眼电影,分析<大侦探皮卡丘>,看看当皮卡丘长出绒毛,"丑拒"还是"真香"都在猫眼短评里了. 本文首发于微信公众号<凹凸数 ...

  8. Python爬取猫眼电影TOP100榜

    Python爬取猫眼电影TOP100榜 兴趣点: 这个没什么特别的兴趣,只是单纯爬猫眼练手的人太多了,所以我也打算加入他们,对猫眼员工说一声不好意思了,哈哈哈! 爬取网址: 传送门:https://m ...

  9. 【Python爬虫】猫眼电影榜单Top100

    这是一个入门级的Python爬虫,结构易于理解.本文对编写此爬虫的全过程进行了讲述.希望对大家的Python爬虫学习有所帮助. 一.目标 爬取猫眼电影榜单Top100,将数据存入Excel文件中,并利 ...

最新文章

  1. iqueryable怎么进行操作_C# 数据操作系列 - 16 SqlSugar 完结篇(最后的精华)
  2. Dos中查找文件命令的使用find
  3. python中的json序列化
  4. wangeditor php上传本地图片,wangEditor 本地上传图片配置
  5. 朴素贝叶斯-垃圾邮件(英文的)处理
  6. java.lang.NoClassDefFoundError: com.mobclick.android.MobclickAgent
  7. 阿里云宗志刚:云网一体,新一代洛神云网络平台
  8. Ubuntu常用命令大全
  9. 超声波传感器模块原理
  10. T83723 数人wjh --题解
  11. java入门循序渐进
  12. 制造执行系统(MES)软件可以增加收入,创造更快的周转时间,提高制造商的质量
  13. CF1143F/1142C U2
  14. JMeter 常用的几种断言方法,你会几种呢?
  15. linux复制与粘贴操作的快捷键
  16. 谈谈BPM工作流引擎
  17. 用canvas画钟,实时变化的钟
  18. 全平台EPUB阅读器-Neat Reader
  19. TemplateInputException:template might not exist or might not be accessible
  20. 凸多面体的表示-H-representation和V-representation

热门文章

  1. 网络通讯学习(3)-----UDP通讯(仅了解)
  2. CEC循环生态社区的商业模式瑞波基因XAG
  3. Notes 20180505 : 计算机的基础知识
  4. 批处理备份及删除,forfiles命令详解
  5. 分享几个微信实用小技巧(二)
  6. 一文搞懂MD5、SHA-1、SHA-2、SHA-3,哪个算法比较安全
  7. 吴忠文化旅游的现状与问题
  8. [OCA]认证考试内容
  9. Metasploit工具配置使用
  10. GWT(Google Web Toolkit)初体验