过cloudflare,使用cfscrape,以及cfscrape挂代理的方式

该博客介绍了如何使用Python模块`cfscrape`来绕过Cloudflare的反爬机制,支持Python2.6到3.7版本。示例代码展示了基本的访问方式以及结合代理进行访问的方法。通过获取并设置代理IP,然后利用`cfscrape`创建带延迟的 scraper 对象进行请求。在成功访问后,从响应中提取特定信息。博客还提供了访问失败的判断及相应处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个简单的python模块,可以绕过cloudflare的反bot页面(也称为"我处于攻击模式"或iuam),它通过请求实现。支持Python2.6-3.7版本。

PS:下面所有运行环境都是在外网的服务器上

只需运行
pip install cfscrape。
您可以使用
pip install-u cfscrap进行升级。
pypi包位于 https://pypi.python.org/pypi/cfscrape/
github https://github.com/Anorov/cloudflare-scrape

#基础访问类型
import cfscrape
from parsel import Selector
import requests
session = cfscrape.create_scraper(delay=10)
response = session.get(url)

下面是挂代理的方式,代理需要在可访问外网的服务器上才可以进行,并且需要将服务器加入白名单。

注册个人或者公司认证后有测试量,可以进行免费测试
注册地址,打开注册

import cfscrape
from parsel import Selector
import requests

response = requests.get("http://tiqu.linksocket.com:81/abroad?num=1&type=2&lb=1&sb=0&flow=1&regions=&port=1&n=0")
ip = response.json()["data"][0]["ip"]
port = response.json()["data"][0]["port"]

ip = "{}:{}".format(ip, port)
proxies = {
    "http": "http://{}".format(ip),
    "https": "https://{}".format(ip),
}

ttt = requests.get("http://myip.top", proxies=proxies)
print(ttt.text)

ssss = cfscrape.create_scraper(delay=10)
cookies,user_agent= ssss.get_cookie_string("https://apkpure.com/", proxies=proxies, allow_redirects=True)

response = ssss.get("https://apkpure.com/cn/search?q=com.facebook.katana",proxies=proxies)
# # print(web_data)
if "开发者" in response.text:
    print("访问成功")
    down_html = Selector(text=response.text)
    info_url_list = down_html.css("div#search-res dd")
    for down_html in info_url_list:
        apk_name = down_html.css("p.search-title>a::text").extract_first()
        print(apk_name)
        print("=============")
else:
    print(response.text)
    print("访问失败")

如果能对你有帮助,是我的荣幸。谢谢。
Python爬虫中遇到Cloudflare的防护通常是因为Cloudflare作为许多网站的CDN服务提供商,会检测到异常的请求流量,并可能会对这些请求实施验证码、IP封锁或者其他反爬策略。解决这个问题有几种常见的方法: 1. **用户代理模拟**(User-Agent spoofing):设置合理的User-Agent头,让服务器认为你是一个浏览器而非爬虫。可以使用`requests`库的`headers`参数修改。 ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get('http://example.com', headers=headers) ``` 2. **Session管理**:创建并保持一个有效的HTTP session,有时候Cloudflare会基于session识别请求。可以使用如`Scrapy`这样的框架,它有内置的session管理。 ```python from scrapy import Spider, Request class MySpider(Spider): def start_requests(self): # 设置合适的起始URL和自定义User-Agent yield Request('http://example.com', headers={'User-Agent': ...}) def parse(self, response): # 解析响应并继续抓取其他页面 # ... ``` 3. **Selenium或Headless Browser**:如果需要交互式的元素或者动态加载的内容,可以考虑使用Selenium(配合ChromeDriver等)模拟真实浏览器操作,绕过某些静态防御机制。 4. **Cloudflare Anti-Bot API**:一些高级解决方案,如使用像`cfscrape`这样的库,它可以处理anti-captcha挑战,但请注意这可能涉及到付费服务。 5. **Rate limiting**:遵守网站的robots.txt规则,设置合理的延迟(time.sleep()),避免过于频繁的请求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值