前言
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~
好啦,正式开始我们的第二节课《爬取豆瓣电影信息》吧!啦啦哩啦啦,都看黑板~
1. 爬虫原理
1.1 爬虫基本原理
听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起。爬虫又称为网页蜘蛛,是一种程序或脚本。但重点在于:它能够按照一定的规则,自动获取网页信息。爬虫的通用框架如下:
1.挑选种子URL;
2.将这些URL放入待抓取的URL队列;
3.取出待抓取的URL,下载并存储进已下载网页库中。此外,将这些URL放入待抓取URL队列,进入下一循环;
4.分析已抓取队列中的URL,并且将URL放入待抓取URL队列,从而进入下一循环。
咳咳~
还是用一个具体的例子,来说明吧!
1.2 一个爬虫例子
爬虫获取网页信息和人工获取信息,其实原理是一致的,比如我们要获取电影的“评分”信息:
这里我们用豆瓣电影吧
人工操作步骤:
1. 获取电影信息的页面
2. 定位(找到)到评分信息的位置
3. 复制、保存我们想要的评分数据
爬虫操作步骤:
1. 请求并下载电影页面信息
2. 解析并定位评分信息
3. 保存评分数据
感觉是不是很像?
1.3 爬虫的基本流程
简单来说,我们向服务器发送请求后,会得到返回的页面,通过解析页面之后,我们可以抽取我们想要的那部分信息,并存储在指定的文档或数据库中。这样,我们想要的信息就被我们“爬”下来啦~
2. Requests+Xpath 爬取豆瓣电影方法
然后首先需要将数据请求下来。
一个爬虫基本上都是由两个部分组成的:1、将目标网站上的页面抓取下来,2、将抓取下来的数据根据一定的规则进行提取。
Python 中爬虫相关的包很多:Urllib、requsts、bs4……我们从 requests+xpath 讲起,因为太容易上手了!学习之后你就会发现,BeautifulSoup 还是稍微有点难的。
下面我们用 requests+xpath 爬取豆瓣电影:
在终端内输入:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2 导入我们需要的 Python 模块
我们在jupyter中编写代码,首先导入我们需要的两个模块:
import requests
from lxml import etree
Python中导入库直接用”import+库名“,需要用库里的某种方法用”from+库名+import+方法名“。这里我们需要requests来下载网页,用lxml.etree来解析网页。
2.3 获取豆瓣电影目标网页并解析
我们要爬取豆瓣电影《哪吒之魔童闹海》上面的一些信息,网站地址是:
哪吒之魔童闹海 (豆瓣)哪吒之魔童闹海电影简介和剧情介绍,哪吒之魔童闹海影评、图片、预告片、影讯、论坛、在线购票https://movie.douban.com/subject/34780991
给定 url 并用 requests.get() 方法来获取页面的text,用 etree.HTML() 来解析下载的页面数据“data”。
url = 'https://movie.douban.com/subject/34780991/'
data = requests.get(url).text
s=etree.HTML(data)
2.4 获取电影名称
获取元素的Xpath信息并获得文本:
file=s.xpath('元素的Xpath信息/text()')
这里的“元素的Xpath信息”是需要我们手动获取的,获取方式为:定位目标元素,在网站上依次点击:右键 > 检查
快捷键“shift+ctrl+c”,移动鼠标到对应的元素时即可看到对应网页代码:
在电影标题对应的代码上依次点击 右键 > Copy > Copy XPath,获取电影名称的Xpath:
这样我们就把元素中的Xpath信息复制下来了&#x