php采集绕过cloudflare,关于pyspider绕过CloudFlare验证的问题
问题在最后。
爬一个网站,遇到下图的cloudflare5秒验证
搜索了一下发现pyspider的github的issues里面已经有人指出了可以使用Anorov/cloudflare-scrape来绕过并且还提交了pull requests:
https://github.com/binux/pyspider/pull/635
我简单测试了一下,发现Anorov/cloudflare-scrape无法绕过我需要爬取的网站获取到内容,但是找到了看起来差不多但略有增强的一个包可以绕过:
https://github.com/VeNoMouS/cloudscraper
主要是通过使用该包的get_tokens方法获取cookies和user_agent传给pyspider来绕过,代码如下:
from pyspider.libs.base_handler import *
import cloudscraper
def getheader(url):
cookie_value, user_agent = cloudscraper.get_tokens(url, browser={'browser': 'chrome', 'mobile': False})
return cookie_value, user_agent
class Handler(BaseHandler):
cookie_value, user_agent = getheader('https://somesite.com/')
crawl_config = {
'headers': {
'User-Agent': user_agent
},
'cookies': cookie_value
}
@every(minutes=24 * 60)
def on_start(self):
self.crawl('https://somesite.com/', callback=self.index_page)
@config(age=1 * 24 * 60 * 60)
def index_page(self, response):
for each in response.doc('article').items():
url = each('a').attr.href
self.crawl(url, callback=self.book_page, save={'url1': url})
# 下一页
self.crawl(response.doc('li.next-page > a').attr.href, callback=self.index_page)
……后面省略
经过测试,该代码能够顺利绕过cloudflare并获取到result。
但是问题来了:在web测试里面基本没有问题,只有极其小的概率会出现验证问题(提示出现了recaptcha验证)。
但是让代码running起来之后,一开始能抓取一些页面,一旦中途有问题出现或者暂停了一段时间后面就是大面积错误,事实上代码此后就等同于失效了。
我想是不是获取的headers和cookies存储在scheduler里面,出错或者暂停之后下次再运行的时候还是用之前获取的headers和cookies,结果就造成了无法通过验证。
或者也许是同一个ip访问太过频繁被封锁,但是出现错误之后我用web调试还是能够获取结果的。
不知道哪里不对,哪位热心的朋友能够给点建议吗?
php采集绕过cloudflare,关于pyspider绕过CloudFlare验证的问题相关推荐
- xss绕过字符过滤_XSS绕过实战练习
前言 写这篇博文起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下.有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战 ...
- php常见后缀绕过,文件包含漏洞(绕过姿势)
文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此 ...
- 验证码绕过(对验证码绕过的理解-----burpsuite)
Pikachu是一个带有漏洞的Web应用系统, 在这里包含了常见的web安全漏洞.通过一些资料认识这个练习的靶机平台.练习需要的条件是自己首先在电脑上下载并安装相关的工具.Burp suit.Phps ...
- 通过cookie绕过验证码登录(绕过验证码)
通过cookie绕过验证码登录(绕过验证码) #!/user/bin/env python3 # -*- coding: utf-8 -*- from selenium import webdrive ...
- 00截断上传绕过_上传绕过总结
欢迎各位关注我的专栏,在以后的时间里,我将分享更多技术,在这里你能学到很多知识和姿势.自我介绍:高级安全研究员|擅长Python\PHP\JAVA审计;SONRT规则;etc.|陈小兵著<SQL ...
- android 分享微信 不审核,ShareSDK Android 微信分享 绕过审核与不绕过审核
首先,微信在android平台有两种方式:一种是绕过审核分享,一种是不绕过审核分享. 绕过审核和不绕过审核的对比图如下: 1.微信好友对比图: 绕过审核分享分享给微信好友时看到的只是图片文件,显示的是 ...
- 使用DNS2TCP搭建DNS隧道,绕过网络认证,实现免验证上网
使用DNS2TCP搭建DNS隧道,绕过网络认证,实现免验证上网 正常情况下,当我们连上酒店或者其他需要验证才可以使用的网络后,虽然上不了网,但是我们的计算机却分配到了IP地址(不分配IP地址web认证 ...
- python+undetected_chromedriver+chrome绕过五秒盾(cloudflare)
公司是做外贸的,所以需要爬取一些外国网站的商品竞品数据,但是在爬取某个网站的时候,遇到了五秒盾的阻拦. 说实话,一开始自己并不了解五秒盾,毕竟在之前爬国内网站的时候,并没有遇到过这种防护措施,但是在爬 ...
- 绕过html标签,巧妙绕过WAF的XSS技巧
本文提出了一种绕过XSS安全机制的新型方法,这种技术由三个阶段组成:确定Payload结构.探测和混淆处理.首先,我们需要针对给定的上下文环境,确定各种不同的Payload结构以达到最优的测试效果.接 ...
最新文章
- 嵌入式设备中支持国密算法的方法(三)——移植Openssl库的步骤说明
- 可以用img做参数的成功例子
- ASP.NET Core Web多语言项目
- Oracle SQL 精妙SQL语句讲解
- Linux设置免密登录
- win10微信多开bat
- Xcode 9以下(xip) 官方直接下载地址(离线下载)
- Windows系统以及office等一键激活
- ContentProvider跨进程通信
- 二叉树求解前序序列、中序序列、后序序列
- Hbase GC调优原理分析
- 分享 百度网盘,不用开会员也可以免费同步上传视频和照片的方法
- java聊天室报告ppt_基于JavaWeb聊天室设计与实现毕业论文+任务书+中期表+中期报告+项目源码+数据库+答辩PPT...
- 虚拟机中的计算机名称,如何获取VMware虚拟机主机的名称和IP?
- 罗森伯格推出第二代光铜混合布线解决方案
- tkinter界面设计
- db.properties 之 root 之空格
- [PMP]作业题(一)模拟题错题整理
- 运动耳机性价比高,运动耳机品牌排行榜
- python矩阵左除_Matlab语法随笔(暂停更新)
热门文章
- java frame的使用方法_java内部窗体internalFrame的使用方法
- 怎么把线稿提取出来_PS教程:提取线稿如此简单?三种方法总有一种适合你
- mysql 代码结构_MySQL代码执行结构
- 中职计算机基础课教学策略研究,中职计算机基础知识教学方法及教学策略研究.doc...
- 微软取消Windows10强制更新
- 5G标准化加速 需应对测试场景复杂性
- 设计模式之----------适配器模式
- Python hashlib、hmac模块
- 创建ASPState数据库
- 编译内核模块找不到内核头文件解决办法