python爬虫电影信息_Python爬虫入门 | 爬取豆瓣电影信息
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~
1. 爬虫原理
1.1 爬虫基本原理
听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起。
爬虫又称为网页蜘蛛,是一种程序或脚本。但重点在于:它能够按照一定的规则,自动获取网页信息。爬虫的通用框架如下:
1.挑选种子URL;
2.将这些URL放入待抓取的URL队列;
3.取出待抓取的URL,下载并存储进已下载网页库中。此外,将这些URL放入待抓取URL队列,进入下一循环;
4.分析已抓取队列中的URL,并且将URL放入待抓取URL队列,从而进入下一循环。
咳咳~
还是用一个具体的例子,来说明吧!
1.2 一个爬虫例子
爬虫获取网页信息和人工获取信息,其实原理是一致的,比如我们要获取电影的“评分”信息:
人工操作步骤:
获取电影信息的页面
定位(找到)到评分信息的位置
复制、保存我们想要的评分数据
爬虫操作步骤:
请求并下载电影页面信息
解析并定位评分信息
保存评分数据
感觉是不是很像?
1.3 爬虫的基本流程
简单来说,我们向服务器发送请求后,会得到返回的页面,通过解析页面之后,我们可以抽取我们想要的那部分信息,并存储在指定的文档或数据库中。这样,我们想要的信息就被我们“爬”下来啦~
2. Requests+Xpath 爬取豆瓣电影
Python 中爬虫相关的包很多:Urllib、requsts、bs4……我们从 requests+xpath 讲起,因为太容易上手了!学习之后你就会发现,BeautifulSoup 还是稍微有点难的。
下面我们用 requests+xpath 爬取豆瓣电影:
2.1 安装 Python 应用包:requests、lxml
如果是首次使用Requests+Xpath,首先需要安装两个包:requests和lxml,在终端分别输入以下两行代码即可(安装方法在第1节中已讲过):
pip install requestspip install lxml
2.2 导入我们需要的 Python 模块
我们在jupyter中编写代码,首先导入我们需要的两个模块:
import requestsfrom lxml import etree
Python中导入库直接用”import+库名“,需要用库里的某种方法用”from+库名+import+方法名“。这里我们需要requests来下载网页,用lxml.etree来解析网页。
2.3 获取豆瓣电影目标网页并解析
我们要爬取豆瓣电影《肖申克的救赎》上面的一些信息,网站地址是:
给定 url 并用 requests.get() 方法来获取页面的text,用 etree.HTML() 来解析下载的页面数据“data”。
url = 'https://movie.douban.com/subject/1292052/'data = requests.get(url).texts=etree.HTML(data)
2.4 获取电影名称
获取元素的Xpath信息并获得文本:
file=s.xpath('元素的Xpath信息/text()')
这里的“元素的Xpath信息”是需要我们手动获取的,获取方式为:定位目标元素,在网站上依次点击:右键 > 检查
快捷键“shift+ctrl+c”,移动鼠标到对应的元素时即可看到对应网页代码:
在电影标题对应的代码上依次点击 右键 > Copy > Copy XPath,获取电影名称的Xpath:
这样我们就把元素中的Xpath信息复制下来了:
//*[@id="content"]/h1/span[1]
放到代码中并打印信息:
film=s.xpath('//*[@id="content"]/h1/span[1]/text()')print(film)
2.5 代码以及运行结果
以上完整代码如下:
import requestsfrom lxml import etreeurl = 'https://movie.douban.com/subject/1292052/'data = requests.get(url).texts=etree.HTML(data)film=s.xpath('//*[@id="content"]/h1/span[1]/text()')print(film)
在 Jupyter 中运行完整代码及结果如下:
至此,我们完成了爬取豆瓣电影《肖申克的救赎》中“电影名称”信息的代码编写,可以在 Jupyter 中运行。
2.6 获取其它元素信息
除了电影的名字,我们还可以获取导演、主演、电影片长等信息,获取的方式是类似的。代码如下:
director=s.xpath('//*[@id="info"]/span[1]/span[2]/a/text()') #导演actor1=s.xpath('//*[@id="info"]/span[3]/span[2]/a[1]/text()') #主演1actor2=s.xpath('//*[@id="info"]/span[3]/span[2]/a[2]/text()') #主演2actor3=s.xpath('//*[@id="info"]/span[3]/span[2]/a[3]/text()') #主演3time=s.xpath(‘//*[@id="info"]/span[13]/text()') #电影片长
观察上面的代码,发现获取不同“主演”信息时,区别只在于“a[x]”中“x”的数字大小不同。实际上,要一次性获取所有“主演”的信息时,用不加数字的“a”表示即可。代码如下:
actor=s.xpath('//*[@id="info"]/span[3]/span[2]/a/text()') #主演
完整代码如下:
import requestsfrom lxml import etreeurl = 'https://movie.douban.com/subject/1292052/'data = requests.get(url).texts=etree.HTML(data)film=s.xpath('//*[@id="content"]/h1/span[1]/text()')director=s.xpath('//*[@id="info"]/span[1]/span[2]/a/text()')actor=s.xpath('//*[@id="info"]/span[3]/span[2]/a/text()')time=s.xpath('//*[@id="info"]/span[13]/text()')print('电影名称:',film)print('导演:',director)print('主演:',actor)print('片长:',time)
在jupyter中运行完整代码及结果如下:
3. 关于Requests
Requests库官方的介绍有这么一句话:Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
这句话直接并霸气地宣示了 Requests 库是 python 最好的一个HTTP库。为什么它有这样的底气?如有兴趣请阅读
Requests 常用的七种方法:
4. 关于解析神器 Xpath
Xpath 即为 XML 路径语言(XML Path Language),它是一种用来确定 XML 文档中某部分位置的语言。
Xpath 基于 XML 的树状结构,提供在数据结构树中找寻节点的能力。起初 Xpath 的提出的初衷是将其作为一个通用的、介于 Xpointer 与 XSL 间的语法模型。但是Xpath 很快的被开发者采用来当作小型查询语言。
可以阅读该
Xpath解析网页的流程:
1.首先通过Requests库获取网页数据
2.通过网页解析,得到想要的数据或者新的链接
3.网页解析可以通过 Xpath 或者其它解析工具进行,Xpath 在是一个非常好用的网页解析工具
常见的网页解析方法比较
正则表达式使用比较困难,学习成本较高
BeautifulSoup 性能较慢,相对于 Xpath 较难,在某些特定场景下有用
Xpath 使用简单,速度快(Xpath是lxml里面的一种),是入门最好的选择
python爬虫电影信息_Python爬虫入门 | 爬取豆瓣电影信息相关推荐
- python爬取豆瓣电影信息_Python爬虫入门 | 爬取豆瓣电影信息
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...
- python 爬虫实战六:用 selenium 爬取豆瓣电影
今天帮朋友爬取豆瓣电影的数据,以便进行社交网络分析. 首先打开豆瓣电影,然后点击 分类 ,选择要爬取的特定电影 这里以国产喜剧片为例:依次点击 电影.喜剧.中国大陆 然后点击一个小的列表按键 找到我们 ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影
前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...
- 爬虫系列1:Requests+Xpath 爬取豆瓣电影TOP
爬虫1:Requests+Xpath 爬取豆瓣电影TOP [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]: ...
- 爬虫利器初体验 scrapy,爬取豆瓣电影
目录 前言 scrapy 数据流 scrapy 组件 爬取豆瓣电影 Top250 后记 送书后话 前言 为什么要学 scrapy 呢?看下图中的招聘要求,就清楚了.很多招聘要求都有 scrapy,主要 ...
- 从入门到入土:python爬虫|scrapy初体验|安装教程|爬取豆瓣电影短评相关信息(昵称,内容,时间和评分)
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- java 爬取 豆瓣_谁说Java不能搞爬虫,哥带你一起爬取豆瓣电影Top250
我命由我不由天,我今天就自己来试试看,看看Java写个爬虫是有多费劲?看懂的朋友别忘记给我个哈,毕竟我是堵上了咱们Java程序员的在奋战!奥利给!我们先来分析一下这个网页,看看哪些数据比较有价值.我们 ...
- python爬取商品信息_Python基于BeautifulSoup爬取京东商品信息
今天小编利用美丽的汤来为大家演示一下如何实现京东商品信息的精准匹配~~ HTML文件其实就是由一组尖括号构成的标签组织起来的,每一对尖括号形式一个标签,标签之间存在上下关系,形成标签树:因此可以说Be ...
- python如何爬取豆瓣_Python实战之如何爬取豆瓣电影?本文教你
爬虫又称为网页蜘蛛,是一种程序或脚本. 但重点在于,它能够按照一定的规则,自动获取网页信息. 爬虫的基本原理--通用框架 1.挑选种子URL: 2.讲这些URL放入带抓取的URL列队: 3.取出带抓取 ...
最新文章
- Razor @Html.Raw()的作用
- 蚂蚁金服 Service Mesh 实践探索
- asterisk extconfig.conf文件解析
- java 大数类_Java大数类介绍
- HTML+CSS+JS实现 ❤️流星天体动画场景特效❤️
- Error in nextTick
- 五子棋 鼠标 C语言,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
- 512抗击震灾捐款背后的思考
- 大工18秋计算机应用基础1,大工18秋《计算机应用基础》在线测试1答案.pdf
- fill()和fill()_n函数还有memset()函数的比较
- 步进伺服控制程序 用三菱plc和威纶触摸屏编写
- 华为交换机双上行组网Smart-link配置指南
- 无线射频识别问答习题
- 微型计算机原理与接口技术第五版pdf,微型计算机原理与接口技术(第5版)
- Sniffer网络监视功能
- 阿里巴巴使用的Rax源码
- 服装制图软件测试初学者,服装行业版软件测试方案.ppt
- html显示统计图数据模板_博客统计信息显示模板
- Matplotlib 多个子图使用一个图例
- Oracle中null值的比较
热门文章
- 从第一代到第五代,App加固技术详解
- EXCEL中如何根据某列找到重复的行,并将重复只保留一条其余的删除?
- 移动软件开发 实验6
- CI24R1低成本2.4G无线收发器芯片替代XN297精简版SI24R1
- 自助建站有什么优势?建站宝盒“三站合一”火爆来袭!!
- Python全栈工程师-第4周-韦玮-专题视频课程
- 算法-狄杰斯特拉-Dijkstra Algorithm
- 【转】日立HDS存储Storage Navigator Modular 2(SNM2)管理软件下载(包含安装配置说明)...
- 《解释的工具:生活中的经济学原理》读书笔记2
- 用python当壁纸_python实现windows壁纸定期更换功能