Press "Enter" to skip to content

使用cfscrape框架来抓取被Cloudflare保护的网站资源

背景

尝试抓取一个网站的资源做一些分析,发现直接curl或者Python的request请求下来的资源不对,用html打开发现是Cloudflare的一个保护页。有此可知这个网站是被保护了,一般的请求肯定是不行了。

方案

在进行很多尝试之后发现一个python库可以解决这个问题(cfscrape) ,这个库只支持python3+。

import cfscrape

scraper = cfscrape.create_scraper()  # returns a CloudflareScraper instance
# Or: scraper = cfscrape.CloudflareScraper()  # CloudflareScraper inherits from requests.Session
print scraper.get("http://somesite.com").content  # => "<!DOCTYPE html><html><head>..."

使用很简单,可以使用,但是我发现一个问题,用这个库请求到的页面居然和我直接打开浏览器的不一样。

比如有个列表,我直接用浏览器打开的数据已经更新到11月份了,但是用这个库请求的数据才到10月份,很奇怪,不知道什么原理。。。难道已经被Cloudflare给反向hack了? 哈哈

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注