如何反反爬虫

我们来讲最常见的反反爬虫方法

import requests
r =requests.get('网页网址')
print(r.requests.headers)

一.使用简单的方法把请求头改为真的浏览器模式

import requests
link='网页地址'
heraders={'User-Agent':''}
r=requests.get(link,headers=headers)
print(r.requsts.headers)

我们可以使用python的fake-uesragent,可以容易的切换User-Agent

pip install fake-uesragent

from fake_useragent import UserAgent 
import requests

link=''
ua=UserAgent()
hearders={'User-Agent':''}
response=requests.grt(url=url,headers=headers)

print(response.status_code)
print(r.request.headers)

这里可以使用ua.random实现随机变换headers。每次生成的伪装表名不一样。我们还需要在headers里面写上Host和Referer

二.我们爬取的时候应该设置一段的时间限制:

import time 
t1=time.time()
time.sleep(2)
t2=time.time()
total_time=t2-t1
print(total_time)

 我们的时间应该不能确定为一个固定的值,我们现在可以加入random模块来实现时间的随机性。

import random
import time

sleep_time=random.randint(0,2)+random.random
print(sleep_time)
time.sleep(sleep_time)

现在我们可以把爬虫和时间间隔结合在一起了:

import requests
from bs4 import BeautifulSoup
import time
import random

link=''

def scrap(link):
    headers={'User-Agent':''}
    r=requests.get(link,headers=headers)
    heml=r.text
    soup=BeautifulSoup(html,"ixml")
    return soup
soup=scrap(link)
title_list=soup.find_all("h1",class_="post-title")
for eachone in title_list:
    url=eachone.a['href']
    print('开始爬取:',url)
    soup_art=scrap(url)
    title=soup_art.find("h1",class_="view-title").text.strip()
    print('标题:',title)
    sleep_time=random.randint(0,2)+random.random()
    print('开始休息:',sleep_time,'秒')
    time.sleep(sleep_time)

我们可以把爬取的放入文件里面

  • 56
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Python 反反爬虫(Anti-Crawler)通常指的是网站为了防止或限制爬虫访问而采取的一些策略和技术手段。这些措施旨在保护网站内容的版权、隐私和性能,常见做法包括: 1. **检查 User-Agent**:网站可能会检查请求头中的 User-Agent,如果发现是爬虫特有的标识,就可能拒绝访问。 2. **IP 黑名单/限速**:对来自特定 IP 地址的请求进行过滤或设置访问速率限制,以应对大量爬取。 3. **验证码验证**:为了防止机器人自动操作,部分网站会在某些页面加入图片验证码或滑动验证码。 4. **Cookie 和 Session**:识别并跟踪用户的会话信息,使得爬虫难以模拟人类用户行为。 5. **动态加载**:有些内容只有在页面交互后才会加载,这就需要使用如 Selenium 或 Puppeteer 这样的工具处理动态内容。 6. **API 授权**:对于数据API,网站通常会提供认证机制,如OAuth、API Key等,没有合法权限的爬虫无法获取数据。 7. **Robots.txt 文件**:遵循 robots.txt 规则,明确哪些页面是可以爬取的,哪些不可以。 8. **检测异常行为**:比如过于频繁的请求、抓取时间间隔过短等,会被视为异常行为封禁。 了解这些反反爬虫技术后,作为爬虫开发者,我们需要遵守道德准则,并采用合适的爬虫技术,如设置合理的延迟、代理、使用库提供的代理池、模拟浏览器行为等方法来降低被识别为爬虫的风险。同时,也可以考虑联系网站方获取数据的官方许可或使用合法的 API。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eqwaak0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值