请选择 进入手机版 | 继续访问电脑版

苏苏网赚论坛

 找回密码
 立即注册
查看: 103|回复: 0

Python爬虫有哪些策略可以对抗反爬虫

[复制链接]
发表于 2019-7-8 13:15:26 | 显示全部楼层 |阅读模式
爬虫工程师最大的麻烦就是爬虫与反爬虫,一边是为了完成爬虫工作,另一边还要为了保卫爬虫不被爬虫入侵,进行持久战。

河马代理IP就来说说,对于Python爬虫来说,有哪些常见的反反爬策略呢?

第一就是设置等待的时间

很多反爬虫策略都包含了检测访问频率,一旦发现了速度的异常,肯定是要进行封杀的,那么我们就以人的速度为模拟,降低访问频率。

1、显性等待时间

import time#导入包time.sleep(3)#设置时间间隔为3-5秒

2、隐式等待时间

wait1.until(lambda driver: driver.find_element_by_xpath("//div[@id='link-report']/span"))

二、修改请求头

识别是机器人还是浏览器浏览的一个重要依据就是User-Agent,不同的浏览器有不同的User-Agent。

import urllib2req=urllib2.Request(url)#多了以下一这一步而已

req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')response=urllib2.urlopen(req)

三、使用代理IP

当你的代理IP已经足够应付封杀反爬虫的手的时候,你就不在意对方的封杀绝技有多么的厉害了,反正封杀了还有

比的IP

# -*- coding: utf-8 -*-

import urllib2

url=" www.ip181.com/"proxy_support=urllib2.ProxyHandler({'http':'121.40.108.76'})

#参数是一个字典{'类型':'代理ip:端口号'}

opener=urllib2.build_opener(proxy_support)

#定制opener

opener.add_handler=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')]

#add_handler给加上伪装

urllib2.install_opener(opener)response=urllib2.urlopen(url)print response.read().decode('gbk')

四、进行模拟登陆

一般用Selenium,可以结合Firefox或者是无头浏览器PhantomJS,这个做的东西比较多了。

联系扣扣:闪闪起而久而思凌思
回复

使用道具 举报

广告合作|最大的网赚客中文交流社区!七年老站!

GMT+8, 2019-12-7 17:58 , Processed in 0.067892 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.1 VIP版

© 2012-2019 苏苏网赚论坛 版权所有 | 7年老品牌

快速回复 返回顶部 返回列表