一.**********XPath:******XPath是一门在xml和html语言中查找信息的一门语言,可以对xml和html文档的元素和属性进行遍历。
chrome中的插件: XPath helper
Firefox插件:Try XPath

XPath语法:
谓语(Predicates):
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
xpath使用方法:用 “ // ” 获取整个页面中的元素,然后写标签名,然后写谓词进行提取。例如: //div[@class=“abc”]
注意:
1.“/”获取子结点,“//” 获取全部结点。
2.contains函数:某个属性包含多个值可以用这个函数。例如: “//div[contains(@class,“abject”)]”
3.注意谓词:谓词中的下标是从1开始而非0
xpath更详细的介绍参见:https://www.w3school.com.cn/xpath/xpath_syntax.asp

二.使用lxml库解析hmtl代码:
1.解析html字符串,使用“lxml.etree.HTML”进行解析,示例代码如下:

html_element=etree.HTML(text)
print(etree.tostring(html_element,encoding='utf-8').decode('utf-8'))

2.解析html文件,使用“lxml.etree.parse”进行解析,示例代码如下:

html_element = etree.parse("lagou.html")
print(etree.tostring(html_element, encoding='utf-8').decode('utf-8'))

这个函数默认xml解析器,所以对于不规范的html,有时候会报错,所以此时应自己创建一个‘html’解析器,代码如下:

parser=etree.HTMLParser(encoding='utf-8')
html_element = etree.parse("lagou.html",parser=parser)
print(etree.tostring(html_element, encoding='utf-8').decode('utf-8'))

经过lxml库解析hmtl代码后就可以进行xpath提取了。
lxml结合xpath注意事项:
1.使用xpath语法,应使用"element.xpath",示例代码如下:

from lxml import etree
parser=etree.HTMLParser(encoding='utf-8')
html = etree.parse("tengxun.html",parser=parser)
***div=html.xpath("//div[2]")[0]***
print(etree.tostring(div, encoding='utf-8').decode('utf-8'))
print(div)

#xpath函数返回的是列表
2.获取某个标签的属性:
示例如下:

href=html.xpath("//a/@href")
#获取a标签的href属性的值

3.获取文本,通过xpath中的“text”函数获取。示例如下:
(#在某个标签下获取某个子孙元素,在“/”之前加“.”)

adress=tr.xpath("./td[4]/text()")[0]

实例:爬取豆瓣网即将上映的电影信息:

from lxml import etree
import requests
url="https://movie.douban.com/"
response=requests.get(url,headers=headers)#解析器
text=response.text
html=etree.HTML(text)
ul=html.xpath("//ul[@class='ui-slide-content']")[0]
#print(etree.tostring(ul,encoding='utf-8').decode('utf-8'))
lis=ul.xpath("./li")
movies=[]
for li in lis:#print(etree.tostring(li,encoding='utf-8').decode('utf-8'))title=li.xpath("@data-title")[0]year=li.xpath("@data-release")[0]director=li.xpath("@data-director")[0]actors=li.xpath("@data-actors")[0]picture=li.xpath(".//img/@src")movie={"title":title,"year":year,"director":director,"actors":actors,"picture":picture}movies.append(movie)
print(movies)

结果如下:
C:\python38\python.exe “C:/python38/new project/mydi/day4.py”
[{‘title’: ‘六人-泰坦尼克上的中国幸存者 The Six’, ‘year’: ‘2020’, ‘director’: ‘罗飞’, ‘actors’: ‘施万克’, ‘picture’: [‘https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2581067467.jpg’]}, {‘title’: ‘通往春天的列车’, ‘year’: ‘2019’, ‘director’: ‘李骥’, ‘actors’: ‘任素汐 / 李岷城 / 陈宇星’, ‘picture’: [‘https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2574813382.jpg’]}, {‘title’: ‘不欺不遇’, ‘year’: ‘2020’, ‘director’: ‘金光利’, ‘actors’: ‘肖旭 / 张学恒 / 张维威’, ‘picture’: [‘https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2572668239.jpg’]}, {‘title’: ‘合法伴侣’, ‘year’: ‘2019’, ‘director’: ‘黄雷’, ‘actors’: ‘李治廷 / 张榕容 / 白客’, ‘picture’: [‘https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2581586285.jpg’]}, {‘title’: ‘月半爱丽丝’, ‘year’: ‘2020’, ‘director’: ‘张林子’, ‘actors’: ‘关晓彤 / 黄景瑜 / 官鸿’, ‘picture’: [‘https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2580211645.jpg’]}, {‘title’: ‘金禅降魔’, ‘year’: ‘2020’, ‘director’: ‘彭发’, ‘actors’: ‘释小龙 / 胡军 / 姚星彤’, ‘picture’: [‘https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2564190636.jpg’]}, {‘title’: ‘大红包’, ‘year’: ‘2020’, ‘director’: ‘李克龙’, ‘actors’: ‘包贝尔 / 李成敏 / 贾冰’, ‘picture’: [‘https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2581346773.jpg’]}, {‘title’: ‘撼山瑶’, ‘year’: ‘2020’, ‘director’: ‘马雍’, ‘actors’: ‘曾格格 / 姜永波 / 辛祚宇’, ‘picture’: [‘https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2568504230.jpg’]}, {‘title’: ‘五彩缤纷’, ‘year’: ‘2020’, ‘director’: ‘胡安’, ‘actors’: ‘朱珠 / 艾米·欧文 / 李雅男’, ‘picture’: [‘https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2580890062.jpg’]}, {‘title’: ‘奇妙王国之魔法奇缘’, ‘year’: ‘2020’, ‘director’: ‘陈设’, ‘actors’: ‘卢瑶 / 张洋 / 陈新玥’, ‘picture’: [‘https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2577837112.jpg’]}]

Process finished with exit code 0

此次爬取若有相关前端知识便会方便很多。
总结:
通过4天的学习,已经可以爬取轻量级的爬虫,本人也将持续更新学习笔记于此,欢迎同为小白的我们一起努力。

[python爬虫之路day4]:xpath基本知识lxml结合xpath进行数据分析爬取豆瓣电影相关推荐

  1. python爬取豆瓣电影信息_Python爬虫入门 | 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  2. python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  3. Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题

      比如我们今天的案例,豆瓣电影分类页面.根本没有什么翻页,需要点击"加载更多"新的电影信息,前面的黑科技瞬间被秒--   又比如知乎关注的人列表页面:   我复制了其中两个人昵称 ...

  4. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  5. python爬虫慕课网利用xpath_python爬虫实践——零基础快速入门(二)爬取豆瓣电影...

    爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...

  6. Python爬虫 爬取豆瓣电影TOP250

    Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...

  7. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  8. 爬虫系列1:Requests+Xpath 爬取豆瓣电影TOP

    爬虫1:Requests+Xpath 爬取豆瓣电影TOP [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]: ...

  9. 小白都能看明白的Python网络爬虫、附上几个实用的爬虫小例子: 爬取豆瓣电影信息和爬取药监局

    文章目录 网络爬虫 爬虫的基础知识 爬虫分类 requests模块 爬虫的简单案例 简单的收集器 爬取豆瓣电影信息 爬取药监局 返回数据类型 数据解析 爬取糗事百科图片(正则表达式) xpath解析数 ...

  10. python爬虫电影信息_Python爬虫入门 | 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

最新文章

  1. 暑期集训1:C++STL 练习题E:POJ-2431
  2. 华为生态链的全方位解读
  3. PyCharm的隐藏技巧(Tips)-快捷键等积累
  4. how can you save more space at home?
  5. 不刷新改变URL: pushState + Ajax
  6. 2015.09.05 C++中类的static与const成员
  7. PyCharm双击或默认情况下是插入的输入状态解决方法
  8. VB.NET 读写HTML 文件,VB.NET 简单介绍文件的读写----流类
  9. 哥写的不是代码,是寂寞
  10. Android的Service组件
  11. dateutils java_DateUtils.java
  12. [译] 用行为经济学来传达付费应用订阅的价值
  13. 论文写作之WPS安装Mathtype插件编写数学公式
  14. java代码将多张图片合成视频
  15. 17个改变世界的数学公式!
  16. 常用工作方法总结(7S、SWOT分析、PDCA循环、SMART原则、6W2H、时间管理、WBS等)
  17. 松鼠症 知识过载与疲于奔命
  18. srs linux开机启动,SRS之安装与使用
  19. 逻辑推理题:海盗分金币
  20. CentOS7镜像阿里云下载

热门文章

  1. 【JY】浅析消能附加阻尼比
  2. Java爬取糗百段子
  3. wireshark数据包分析实战 读书笔记
  4. 键盘没有pause break,该怎么办?
  5. 字符谜题之1:最后的笑声(之所以说是最后的笑声,是因为输出两个Ha,第二个出问题)
  6. 突然看到微信还有这种赞赏码
  7. 2021全国大学生电子设计竞赛C题
  8. Y-我的PPT监控之流媒体服务器的搭建
  9. 世纪佳缘php查学历吗,爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?...
  10. c语言 北京时间转换utc时间_UTC时间与北京时间相互转换