问题在最后。

爬一个网站,遇到下图的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验证的问题相关推荐

  1. xss绕过字符过滤_XSS绕过实战练习

    前言 写这篇博文起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下.有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战 ...

  2. php常见后缀绕过,文件包含漏洞(绕过姿势)

    文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此 ...

  3. 验证码绕过(对验证码绕过的理解-----burpsuite)

    Pikachu是一个带有漏洞的Web应用系统, 在这里包含了常见的web安全漏洞.通过一些资料认识这个练习的靶机平台.练习需要的条件是自己首先在电脑上下载并安装相关的工具.Burp suit.Phps ...

  4. 通过cookie绕过验证码登录(绕过验证码)

    通过cookie绕过验证码登录(绕过验证码) #!/user/bin/env python3 # -*- coding: utf-8 -*- from selenium import webdrive ...

  5. 00截断上传绕过_上传绕过总结

    欢迎各位关注我的专栏,在以后的时间里,我将分享更多技术,在这里你能学到很多知识和姿势.自我介绍:高级安全研究员|擅长Python\PHP\JAVA审计;SONRT规则;etc.|陈小兵著<SQL ...

  6. android 分享微信 不审核,ShareSDK Android 微信分享 绕过审核与不绕过审核

    首先,微信在android平台有两种方式:一种是绕过审核分享,一种是不绕过审核分享. 绕过审核和不绕过审核的对比图如下: 1.微信好友对比图: 绕过审核分享分享给微信好友时看到的只是图片文件,显示的是 ...

  7. 使用DNS2TCP搭建DNS隧道,绕过网络认证,实现免验证上网

    使用DNS2TCP搭建DNS隧道,绕过网络认证,实现免验证上网 正常情况下,当我们连上酒店或者其他需要验证才可以使用的网络后,虽然上不了网,但是我们的计算机却分配到了IP地址(不分配IP地址web认证 ...

  8. python+undetected_chromedriver+chrome绕过五秒盾(cloudflare)

    公司是做外贸的,所以需要爬取一些外国网站的商品竞品数据,但是在爬取某个网站的时候,遇到了五秒盾的阻拦. 说实话,一开始自己并不了解五秒盾,毕竟在之前爬国内网站的时候,并没有遇到过这种防护措施,但是在爬 ...

  9. 绕过html标签,巧妙绕过WAF的XSS技巧

    本文提出了一种绕过XSS安全机制的新型方法,这种技术由三个阶段组成:确定Payload结构.探测和混淆处理.首先,我们需要针对给定的上下文环境,确定各种不同的Payload结构以达到最优的测试效果.接 ...

最新文章

  1. 嵌入式设备中支持国密算法的方法(三)——移植Openssl库的步骤说明
  2. 可以用img做参数的成功例子
  3. ASP.NET Core Web多语言项目
  4. Oracle SQL 精妙SQL语句讲解
  5. Linux设置免密登录
  6. win10微信多开bat
  7. Xcode 9以下(xip) 官方直接下载地址(离线下载)
  8. Windows系统以及office等一键激活
  9. ContentProvider跨进程通信
  10. 二叉树求解前序序列、中序序列、后序序列
  11. Hbase GC调优原理分析
  12. 分享 百度网盘,不用开会员也可以免费同步上传视频和照片的方法
  13. java聊天室报告ppt_基于JavaWeb聊天室设计与实现毕业论文+任务书+中期表+中期报告+项目源码+数据库+答辩PPT...
  14. 虚拟机中的计算机名称,如何获取VMware虚拟机主机的名称和IP?
  15. 罗森伯格推出第二代光铜混合布线解决方案
  16. tkinter界面设计
  17. db.properties 之 root 之空格
  18. [PMP]作业题(一)模拟题错题整理
  19. 运动耳机性价比高,运动耳机品牌排行榜
  20. python矩阵左除_Matlab语法随笔(暂停更新)

热门文章

  1. java frame的使用方法_java内部窗体internalFrame的使用方法
  2. 怎么把线稿提取出来_PS教程:提取线稿如此简单?三种方法总有一种适合你
  3. mysql 代码结构_MySQL代码执行结构
  4. 中职计算机基础课教学策略研究,中职计算机基础知识教学方法及教学策略研究.doc...
  5. 微软取消Windows10强制更新
  6. 5G标准化加速 需应对测试场景复杂性
  7. 设计模式之----------适配器模式
  8. Python hashlib、hmac模块
  9. 创建ASPState数据库
  10. 编译内核模块找不到内核头文件解决办法