您现在的位置是:首页 >学无止境 >Cloudflare反反爬的几种方式记录网站首页学无止境
Cloudflare反反爬的几种方式记录
简介Cloudflare反反爬的几种方式记录
Part1:最常用的cloudscraper库
这个方法现在已经失效,据说是cloudflare只要稍有改进就会失效。期待作者更新
import cfscrape
scraper = cfscrape.create_scraper(delay=10) # 可以设置延迟时间
res = scraper.get(u, headers=headers) # 发起请求的方式和requests相同
Par2:Fake-UserAgent
from fake_useragent import UserAgent
ua = UserAgent()
ua1 = ua.random
print(ua1) # 可以看到每次都调用不同的ua
headers = {
'User-Agent': str(ua1),
'cookie': bytedatas,}
Part3:time.sleep()
可以说是最质朴的方法了。缺点是会大幅降低爬虫速度。需要自己拿捏获取数据的速度和被屏蔽之间的平衡。目前我用的是每个网页7-10秒,每10页休息30-40秒
import time
import random
import requests
for u in urls:
res = requests.get(u,headers=headers)
# 中间省略
time.sleep(random.randint(7,10))
Part4:一些不管用的偏方
requests设置延迟加载,禁止重定向等
res = requests.get(url,timeout=20,allow_redirects=False)
目前就是勉强用time.sleep()的方法运行着,过几十个就要改一下所请求的网址,同时写入日志,再对日志进行数据提取。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。