美文网首页python爬虫爬虫
python爬虫常见反爬措施

python爬虫常见反爬措施

作者: 记事本的记事本 | 来源:发表于2018-06-08 11:03 被阅读526次

1.IP封锁

常见网站反爬虫首先考虑到会不会对用户产生误伤,举个例子,在校园网内,有台机器对网站持续高频繁产生请求,校园网涉及用户过多,但是如果封锁IP那么会对校园中的用户产生误伤,丧失了许多用户量,就拿某宝那么大的公司来说,不到万不得已时,不会对IP进行长时间或者进行封锁。
解决方案:
1.采用修改程序访问频率
可以使用

#引入
impor time
#休息两秒
time.sleep(2)

2.采用IP代理的方式,进行对网站数据量的爬取

#导入requests库,如果使用其他的自行导入
import requests
proxies = {
  "http": "http://127.0.0.1:8888",
  "https": "http://127.0.0.11:1080",
}
requests.get(url, proxies=proxies)

这样爬取网站就无法判断你是否批量爬取了,当然不是一个IP用一次,要用到失效后再进行更换(土豪随意 23333)

2协议头

绝大多数网站,访问时会判断来源,例如手机用户和电脑用户同样访问QQ空间,但是页面却是不一样的,这个为什么呢?,在写爬虫中网站也判断其来源,爬虫初学者在初学的时候会写出这样的代码
举个栗子

rs= requests.get('http://baidu.com')
print(rs.text)

相信这段代码很多初学者都使用过,百度这种搜索引擎网站页面是不会管是不是爬虫或者是其他的人在访问,再举个栗子

rs=requests.get('http://jianshu.com')

返回状态为 response<404>
这是为什么呢,简书判断不到用户的访问来源,所以会返回一个404错误来告知,你是一个爬虫,拒绝访问。
那么如何解决呢
解决方案:

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}
rs=requests.get('http://jianshu.com')

返回状态为response<200>
这时我们可以愉快地访问了。

3.验证码

当用户请求频率过高的时候,有些网站就会触发验证码验证机制,让你输入各种验证码 常用的举个栗子,12306购票时,客户多次请求网站的查询票的请求,在购买车票的的时候,会显现出验证码,那么12306判断你是否是机器人,
解决方案:
加入打码平台,具体自行百度。

4.需要登录才能获得信息

例如知乎,FaceBook ...等网站需要用户登录之后才能够获取页面中的信息,那么这种防护能非常有效的防止数据大批量的被爬取。
解决方案:
1.小数据量(模拟登录后再去爬取,或者使用cookies 直接进行爬取)
2.申请诸多的账号去养这些号,然后登录,或者获得cookies进行爬取。

5.js图片类的反爬

例如爬虫在爬取网站的时候,会获取主页中的有效信息,但是对于他不需要的,爬虫不进行访问,而在真实用户用浏览器访问的时候会访问到主页上的js和图片资源,那么服务器端,就会判断该用户下是否访问了这些资源来判断是否爬虫。
解决方案:
使用selenium
介绍:Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
使用这个库即可以达到用户真实访问的目的

下面用百度举个例子

from selenium import webdriver  
from selenium.webdriver.common.keys import Keys 
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')  #打开百度首页
driver.implicitly_wait(20) #智能等待20s

driver.find_element_by_id('kw').send_keys('python') #在输入框中输入python
driver.find_element_by_id('su').click()  #点击进行搜索

这样的话


就会浏览器子自动操作,打印源码的命令之类的我会出一个selenium专题来介绍敬请期待。
本文持续更新 如果对你有用请关注一下~ 有问题评论下方说明即可,一般四个小时内回复。

相关文章

  • python爬虫常见反爬措施

    1.IP封锁 常见网站反爬虫首先考虑到会不会对用户产生误伤,举个例子,在校园网内,有台机器对网站持续高频繁产生请求...

  • 自学Python爬虫:常见的反爬与反爬处理

    有爬虫就有反爬虫的,双方都是一直在博弈升级中。 常见的反爬虫措施有: 字体反爬 基于用户行为反爬虫 基于动态页面的...

  • 常见反爬虫与应对措施

    反爬虫及其应对措施 常见的反爬措通常来说有三种: 通过分析用户请求的Headers信息进行反爬虫。 通过判断同一个...

  • Python构建代理池

    用 Python 爬取网站内容的时候,容易受到反爬虫机制的限制,而突破反爬虫机制的一个重要措施就是使用IP代理。我...

  • 16.常见的反爬手段和解决思路

    常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因 了解 服务器常反什么样的爬虫 了解 反爬虫领域常见的一...

  • python爬虫设置请求消息头(headers)

    在使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-A...

  • Python3 自定义请求头消息headers

    使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Ag...

  • 一行代码搞定 Scrapy 随机 User-Agent 设置

    摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置...

  • 抖音爬虫教程,python爬虫采集反爬策略

    抖音爬虫教程,python爬虫采集反爬策略一、爬虫与反爬简介爬虫就是我们利用某种程序代替人工批量读取、获取网站上的...

  • 爬虫基础面试题

    1.反爬措施 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎么解决的?设置用户代理 伪装浏览器禁止IP ...

网友评论

    本文标题:python爬虫常见反爬措施

    本文链接:https://www.haomeiwen.com/subject/egposftx.html