今天这篇文章带大家了解python爬虫实战阶段,后面将会有更多的实际案例,可以关注下小编,以后精彩的内容不会错过哦(文末有爬虫学习教程赠送哦)
一、Python有哪些网络库
在真实浏览网页我们是通过鼠标点击网页然后由浏览器帮我们发起网络请求,那在Python中我们又如何发起网络请求的呢?答案当然是库,具体哪些库?小编给大家列一下:
Python2: httplib、httplib2、urllib、urllib2、urllib3、requestsPython3: httplib2、urllib、urllib3、requestsPython网络请求库有点多,而且还看见网上还都有用过的,那他们之间有何关系?又该如何选择?
httplib/2:这是一个Python内置http库,但是它是偏于底层的库,一般不直接用。
而httplib2是一个基于httplib的第三方库,比httplib实现更完整,支持缓存、压缩等功能。
一般这两个库都用不到,如果需要自己 封装网络请求可能会需要用到。
urllib/urllib2/urllib3:urlliib是一个基于httplib的上层库,而urllib2和urllib3都是第三方库,urllib2相对于urllib增加一些高级功能,如:HTTP身份验证或Cookie等,在Python3中将urllib2合并到了urllib中。urllib3提供线程安全连接池和文件post等支持,与urllib及urllib2的关系不大。
requests:requests库是一个基于urllib/3的第三方网络库,它的特点是功能强大,API优雅。由上图我们可以看到,对于http客户端python官方文档也推荐我们使用requests库,实际工作中requests库也是使用的比较多的库。
综上所述,我们选择选择requests库作为我们爬虫入门的起点。另外以上的这些库都是同步网络库,如果需要高并发请求的话可以使用异步网络库:aiohttp,这个后面小编也会为大家讲解。
二、requests介绍
1.首页
从首页中让HTTP服务人类这几个字中我们便能看出,requests核心宗旨便是让用户使用方便,间接表达了他们设计优雅的理念。
2.功能特性
都说requests功能强大,那我们来看看requests到底有哪些功能特性吧:
Keep-Alive & 连接池国际化域名和 URL带持久 Cookie 的会话浏览器式的 SSL 认证自动内容解码基本/摘要式的身份认证优雅的 key/value Cookie自动解压Unicode 响应体HTTP(S) 代理支持文件分块上传流下载连接超时分块请求支持 .netrcrequests 完全满足今日 web 的需求。Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行。
三、安装requests
pip 安装:
pip install requests
如果是pip3则使用
pip3 install requests
如果你使用anaconda则可以
conda install requests
如果你不想用命令行,可在pycharm中这样下载库
四、爬虫流程
下图是小编之前工作总结的一个项目开发流程,算是比较详细,在开发一个大型的项目真的需要这么详细,不然项目上线出故障或者修改需求都无法做项目复盘,到时候程序员就有可能背锅祭天。。。
言归正传,给大家看项目的开发流程是想引出爬虫爬取数据的流程:
确定需要爬取的网页浏览器检查数据来源(静态网页or动态加载)寻找加载数据url的参数规律(如分页)代码模拟请求爬取数据五、爬取某东商品页
小编就以某东商品页为例子带大家学习爬虫的简单流程,为什么以某东下手而不是某宝?因为某东浏览商品页不需要登录,简单便于大家快速入门!
1.第一步:浏览器中找到你想爬取的商品
ps:小编并不是在开车哦,为什么选这款商品?因为后面会爬取这款商品的评价做数据分析,是不是很刺激!
2.第二步:浏览器检查数据来源
打开浏览器调试窗口是为了查看网络请求,看看数据是怎么加载的?是直接返回静态页面呢,还是js动态加载呢?
鼠标右键然后点检查或者直接F12即可打开调试窗口,这里猪哥推荐大家使用Chrome浏览器,为什么?因为好用,程序员都在用!具体的Chrome如何调试,大家自行网上看教程!
打开调试窗口之后,我们就可以重新请求数据,然后查看返回的数据,确定数据来源。
3.第三步:寻找加载数据url的参数规律
我们可以看到第一个请求链接: 返回的数据便是我们要的网页数据。因为我们是爬取商品页,所以不存在分页之说。
当然价格和一些优惠券等核心信息是通过另外的请求加载,这里我们暂时不讨论,先完成我们的第一个小例子!
4.第四步:代码模拟请求爬取数据
获取url链接之后我们来开始写代码吧
import requestsdef spider_jd():
"""爬取京东商品页"""
url =
try:
r = requests.get(url) # 有时候请求错误也会有返回数据
# raise_for_status会判断返回状态码,如果4XX或5XX则会抛出异常
r.raise_for_status()
print(r.text[:500]) except:
print(爬取失败)if __name__ == __main__:
spider_jd()
检查返回结果
至此我们就完成了某东商品页的爬取,虽然案例简单,代码很少,但是爬虫的流程基本差不多,希望想学爬虫的同学自己动动手实践一把,选择自己喜欢的商品抓取一下,只有自己动手才能真的学到知识!
六、最后
小编给大家分享一套特别的Python爬虫入门到实战课程,从最基础的爬虫分类讲起,用史上最详细的视频教程帮助你快速入门爬虫。只需要10个小时,你就能从新手完成进阶!
这是一门什么样的课程?
这是一门面向Python初学者和爬虫爱好者,提供爬虫知识入门和进阶的课程,可以帮助你快速入门。
这门课程有什么特点?
这门课程为零基础人士进行了特别优化。我们将从爬虫基础开始讲起,视频教程内容十分详细,涵盖几乎所有初学者必备知识点。可以帮你实现从零到进阶的过程。
在这门课程里,你将学到:
爬虫分类和ROBOTS协议爬虫URLLIB使用和进阶爬虫URL编码和GETPOST请求爬虫AJAX数据爬取和HTTPS访问爬虫实现URLLIB3和REQUESTS使用爬虫XPATH和LXML实战目录
说了这么多,需要这套学习教程的小伙伴,
只需转发文章 然后私信小编“资料”即可免费获取!.......................................
...............这套课程的学习路线大纲:
一段:
01-爬虫介绍
02-爬虫软件的安装
03-第一个爬虫
04-Request对象的使用
05-get请求的使用
06-贴吧案例
07-post请求的使用
二段:
08-ajax请求的抓取
09-https请求的使用
10-proxy的使用
11-cookie的使用1
12-cookie的使用2
13-URLError的使用
14-requests的使用
三段:
15-re的使用
16-糗事百科案例.mp4
17-BeautifulSoup的使用.mp4
18-xpath的使用.mp4
19-pyquery的使用.mp4
20-jsonpath的使用.mp4
四段:
21-多线程的使用.mp4
22-tesseract的使用.mp4
23-云打码平台的使用.mp4
24-云打码登录.mp4
25-爬取图文并茂文章方法.mp4
26-selenium的使用.mp4
五段:
27-阶段测试需求说明.mp4
28-猫眼测试xpath的写法.mp4
29-猫眼测试bs4的写法.mp4
30-猫眼测试re的写法.mp4
31-猫眼测试pyquery的写法.mp4
32-ChromeDriver开启无头模式.mp4
33-爬虫复习.mp4
六段:
34-虎牙直播练习.mp4
35-selenium滚动条的使用.mp4
36-图虫图片练习.mp4
37-双色球练习数据下载.mp4
38-双色球练习保存数据库.mp4
39-双色球练习数据更新.mp4
40-爬虫新写法1.mp4
41-爬虫新写法2.mp4
七段:
42-爬虫的基本介绍.mp4
43-爬虫的基本使用.mp4
44-爬虫的数据提取.mp4
45-scrapy中pipeline中的使用.mp4
46-scrapy中settings的设置.mp4
47-scrapy中细节问题.mp4
48-scrapy爬取小说.mp4
49-scrapy中crawlspider的使用.mp4
八段:
50-scrapy中ImagePipeline的使用.mp4
51-scrapy中动态UA的使用.mp4
52-scrapy中动态代理的使用.mp4
53-scrapy登录方式1.mp4
九段:
55-Mongo的使用.mp4
56-Mongo的数据库实例与集合的操作.mp4
57-Mongo的数据基本操作(CRUD).mp4
58-Mongo的数据查询.mp4
60-Scrapy中保存到数据库.mp4
十段:
62-Splash的安装.mp4
61-Scrapy中调试的使用.mp4
63-Splash如何打开服务.mp4
64-阶段测试.mp4
65-scrapy内容补充.mp4
十一段:
66-splash与requests结合.mp4
67-splash与scrapy的结合.mp4
68-selenium与scrapy的结合.mp4
69-某家内容爬取-数据解析.mp4
70-某家内容爬取-数据保存.mp4
十二段:
71-scrapy-redis的介绍.mp4
72-linux的安装.mp4
73-linux软件安装与克隆.mp4
74-scrapy-redis的windows环境安装.mp4
75-scrapy_redis的写法1.mp4
76-scrapy_redis的写法.mp4
77-scrapy_redis的写法2.mp4
78-从redis中取出数据到Mongo数据库.mp4
十三段:
0.1-Flask介绍与安装.mp4
0.2-Flask的路由设置与参数接收.mp4
0.3-Flask的响应.mp4
0.4-Flask与Echarts的结合使用.mp4
番外1-51job需求与页面分析.mp4
开始学习番外2-51job页面解析1.mp4
番外3-51job页面解析2.mp4
番外4-51job保存到数据库.mp4
需要的小伙伴赶紧来私信我领取哦、仅限300名额、先到先得!