python如何反反爬?

img

img

UA,cookie,handler都用了,还是不行,该怎么办呢?
笔趣阁。

能让我看看你完整的请求头吗?
由于浏览器可以正常打开你的网站,所以你必须尽可能模仿浏览器的行为,如果你的请求头只写UA,Cookie,handler,怕网站不会给你通过。
firefox对于你的目标网站请求头长这样:

GET /16750/223331.html HTTP/3
Host: www.beqege.cc
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Alt-Used: www.beqege.cc
Connection: keep-alive
Cookie: cf_clearance=hFt3tqQzwm_H4dmwHWyApDPxjvILnwhVLdhz.c6gIWY-1691912651-0-1-4baf00ee.5cf7af74.20d4e7a3-0.2.1691912651; __gads=ID=7f4a8286638d52f5-220dc265d1e2002d:T=1691912651:RT=1691912651:S=ALNI_MaTdRHH9Um86XPcSv4cu95fLbR9lQ; __gpi=UID=00000c2c0157e013:T=1691912651:RT=1691912651:S=ALNI_MajKcWamQuejVOcBXC3ChKDZHww1A
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
If-Modified-Since: Sun, 04 Dec 2022 12:29:52 GMT
TE: trailers

你可以删除没有用的部分,保留这些试试:

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Alt-Used: www.beqege.cc
Connection: keep-alive

这个网返回的数据看着像是加密了的,上这个弄https://www.biqukan.cc/article/15/

【以下回答由 GPT 生成】

我可以给你一些关于如何解决Python反爬的一般指导方针。请注意,具体的解决方案可能因网站的反爬机制而异,因此无法提供确定的代码。你需要根据具体情况进行调整和实现。

有几种常见的反爬机制,你可以逐一尝试以下方法来解决问题:

  1. 修改User-Agent:通过修改User-Agent来伪装成浏览器的请求。在使用requests库时,可以通过设置headers中的User-Agent字段来实现。例如:
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(url, headers=headers)
  1. 处理Cookie:某些网站通过Cookie来检测是否为机器人。可以使用requests库来处理Cookie。例如:
url = 'http://example.com'
cookies = {
    'sid': 'example_cookie_value'
}

response = requests.get(url, cookies=cookies)
  1. 处理Session:有些网站使用了Session来追踪用户的状态。可以使用requests库的Session对象来处理。例如:
session = requests.Session()
session.headers.update({'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 = session.get(url)
  1. 处理验证码:部分网站会使用验证码来防止机器人访问。你可以手动输入验证码,或者使用第三方库来自动解析验证码。

  2. IP代理:使用IP代理来隐藏自己的真实IP地址,避免被封禁。可以使用第三方库来实现IP代理功能。

  3. 限制访问频率:有些网站会通过限制访问频率来防止爬虫。你可以在爬取时加入延时,避免过于频繁地请求网站。

  4. 分析反爬机制:有些网站使用了更复杂的反爬机制,比如动态生成JS代码、IP封禁或者其他自定义的策略。你可以使用开发者工具对网站进行分析,找出反爬机制所在,并编写相应的解决方案。

  5. 使用Selenium:针对一些比较复杂的反爬机制,可以考虑使用Selenium这样的工具模拟真实的浏览器行为,处理JavaScript渲染等问题。

以上是一些常见的解决方法,但这不是一个完整的列表。具体的解决方案可能因网站的具体反爬机制而异。同时,需要注意,尊重网站的爬取规则,并遵守法律法规。如果网站明确禁止爬取,你应该尊重其规定,避免侵权行为。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^