5分钟带你深入了解Python爬反穿越之丫头美食家虫,你会发现爬虫其实没有那么难

摘要:Python学习网络爬虫主要分3个大的版块:抓取,分析,存储。另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一


Python学习网络爬虫主要分3个大的版块:抓取,分析,存储。

另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入:,你就会看到百度首页。

简单来说这段过程发生了以下4个步骤:

查找域名对应的IP地址。

向IP对应的服务器发送请求。

服务器响应请求,发回网页内容。

浏览器解析网页内容。

网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。

抓取

这一步,你要明确要得到的内容是什么?是HTML源码,饮食减肥健德堂怎么样?,还是Json格式的字符串等。

最基本的抓取

抓取大多数情况属于get请求,即直接从对方服务器上获取数据。

首先,Python中自带urllib及urllib2这两个模块,基本上能满足一般的页面抓取。另外,requests也是非常有用的包,与此类似的,还有httplib2等等。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url和传输数据,多个参数用&连接。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

对于登陆情况的处理

1、使用表单登陆

这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

2、使用cookie登陆

使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。因此,需要验证码的情况可以使用带验证码登陆的cookie解决。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

若存在验证码,此时采用response = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

对于反爬虫机制的处理

1、使用代理

适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。

这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,西安博朗定制扑克牌厂怎么样了?,良莠不齐,可以通过筛选找到能用的。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

2、时间设置

适用情况:限制频率情况。

Requests,Urllib2都可以使用time库的sleep()函数:

import time time.sleep(1)

3、伪装成浏览器,小楼传奇贰怎么样了?,或者反“反盗链”

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

对于断线重连

不多说

5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难


本文地址:http://www.5230826.net/cloth/men-women/20191128/127520.html 转载请注明出处!
相关文章: