IT帮

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 31|回复: 4

python爬虫基础-反爬机制的处理

[复制链接]

10

主题

15

帖子

18

积分

小学生

Rank: 1

热心值
1
IT币
76
贡献值
0
QQ
发表于 2020-6-1 17:46:34 | 显示全部楼层 |阅读模式
反爬虫更多是一种攻防战,针对网站的反爬虫处理来采取对应的应对机制,一般需要考虑以下方面:
①访问终端限制:这种可通过伪造动态的UA实现;
②访问次数限制:网站一般通过cookie/IP定位,可通过禁用cookie,或使用cookie池/IP池来反制;
③访问时间限制:延迟请求应对;
④盗链问题:通俗讲就是,某个网页的请求是有迹可循的,比如知乎的问题回答详情页,正常用户行为必然是先进入问题页,在进入回答详情页,有严格的请求顺序,如果之间跳过前面请求页面就有可能被判定为到了,通过伪造请求头可以解决这个问题;
对于反爬虫机制的处理的一些方法
使用代理
适用情况:大部分网站均限制了IP的访问量
对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。

        #! -*- encoding:utf-8 -*-        import requests        import random        # 要访问的目标页面        targetUrl = "http://httpbin.org/ip"        # 要访问的目标HTTPS页面        # targetUrl = "https://httpbin.org/ip"        # 代理服务器(######)        proxyHost = "t.16yun.cn"        proxyPort = "31111"        # 代理隧道验证信息        proxyUser = "username"        proxyPass = "password"        proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {            "host" : proxyHost,            "port" : proxyPort,            "user" : proxyUser,            "pass" : proxyPass,        }        # 设置 http和https访问都是用HTTP代理        proxies = {            "http"  : proxyMeta,            "https" : proxyMeta,        }        #  设置IP切换头        tunnel = random.randint(1,10000)        headers = {"Proxy-Tunnel": str(tunnel)}        resp = requests.get(targetUrl, proxies=proxies, headers=headers)        print resp.status_code        print resp.text



时间设置

适用情况:限制频率情况。大部分网站有频率限制,比如搜索后需要一定间隔才能获取详情页面等。
我们可以用sleep方式来做出以下延迟。

import timetime.sleep(1)



伪装成浏览器,或者反“反盗链”

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。
User-Agent可以用亿牛云提供给的真实库,Referer的来源可以伪装成百度搜索来的。

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.1276.73 Safari/537.36', 'Referer':'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=nike'}response = requests.get(url=url, headers=headers)




ITbang.Net是一个IT教程分享社区!

寻找论坛资源请善用论坛搜索功能,这样会为你节约不少学习时间;

论坛资源如有过期链接失效等,请到教程反馈区发帖反馈,我们会为您良好的行为点赞加分!

回复

使用道具 举报

0

主题

69

帖子

19

积分

小学生

Rank: 1

热心值
10
IT币
22
贡献值
3
发表于 2020-6-2 13:34:49 | 显示全部楼层
没看完~~~~~~ 先回复换一下帖子,我是好学生

ITbang.Net是一个IT教程分享社区!

寻找论坛资源请善用论坛搜索功能,这样会为你节约不少学习时间;

论坛资源如有过期链接失效等,请到教程反馈区发帖反馈,我们会为您良好的行为点赞加分!

回复

使用道具 举报

0

主题

58

帖子

36

积分

小学生

Rank: 1

热心值
0
IT币
-1
贡献值
0
发表于 2020-6-2 13:37:19 | 显示全部楼层
过来看看的

ITbang.Net是一个IT教程分享社区!

寻找论坛资源请善用论坛搜索功能,这样会为你节约不少学习时间;

论坛资源如有过期链接失效等,请到教程反馈区发帖反馈,我们会为您良好的行为点赞加分!

回复

使用道具 举报

0

主题

63

帖子

0

积分

小学生

Rank: 1

热心值
0
IT币
0
贡献值
0
发表于 2020-6-2 13:39:24 | 显示全部楼层
路过,学习下

ITbang.Net是一个IT教程分享社区!

寻找论坛资源请善用论坛搜索功能,这样会为你节约不少学习时间;

论坛资源如有过期链接失效等,请到教程反馈区发帖反馈,我们会为您良好的行为点赞加分!

回复

使用道具 举报

0

主题

60

帖子

36

积分

VIP

Rank: 8Rank: 8

热心值
0
IT币
-1
贡献值
0
发表于 2020-6-3 09:49:57 | 显示全部楼层
路过,学习下

ITbang.Net是一个IT教程分享社区!

寻找论坛资源请善用论坛搜索功能,这样会为你节约不少学习时间;

论坛资源如有过期链接失效等,请到教程反馈区发帖反馈,我们会为您良好的行为点赞加分!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
IT帮论坛所发布的一切视频资源、工具软件和网络技术相关的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该资源,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:Service@ITbang.Net

QQ|Archiver|手机版|小黑屋|IT帮社区 ( 冀ICP备19002104号-2 )

GMT+8, 2020-7-15 20:11 , Processed in 0.059565 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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