python随机选择user_agents来进行防止反爬取

import requests
from bs4 import BeautifulSoup
import random

url = 'https://example.com'

# 随机选择一个 User-Agent
user_agents = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',
    # 更多的 User-Agent
]

headers = {
    'User-Agent': random.choice(user_agents)
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    soup = BeautifulSoup(response.content, 'html.parser')
    # 提取需要的信息
    # 例如,找到所有的标题
    titles = soup.find_all('h1')
    for title in titles:
        print(title.text)
else:
    print('Failed to retrieve the webpage')

在这个示例中,我们通过设置 headers 字典来包含随机选取的 User-Agent,以模拟不同浏览器发送请求。这有助于减少被网站识别为爬虫程序的机会。

还有其他反爬虫策略,比如使用代理 IP、限速访问等,但是它们都需要更复杂的实现。希望这个示例能够帮助你更好地理解如何在爬取网页时规避反爬虫策略

参考资源链接:[Python爬虫技巧:生成随机浏览器头部信息以爬取视频](https://wenku.csdn.net/doc/6qvhk9u6qy?utm_source=wenku_answer2doc_content) 在开发Python爬虫时,为了避免被网站的爬虫机制识别并封禁,我们可以采用随机生成浏览器头部信息的方法来模拟真实用户的行为。这种方法可以帮助我们降低被网站检测到的风险,并提高爬取特定网站视频的成功率。下面将提供一个详细的代码示例,演示如何实现这一过程。 首先,我们可以使用Python的`random`模块来生成随机User-Agent,并构建一个包含多种可能头部信息的字典。然后,在发起网络请求时,我们可以从这个字典中随机选择一个头部信息,以模拟不同的浏览器行为。以下是具体的实现步骤和代码: 1. 导入必要的模块: ```python import requests import random import json ``` 2. 准备随机浏览器头部信息的列表: ```python user_agents = [ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/601.7.7 (KHTML, like Gecko) Version/7.1.7 Safari/537.36', # ... 其他User-Agent ] headers_list = { 'User-Agent': random.choice(user_agents), 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate, sdch', 'Accept-Language': 'en-US,en;q=0.8', 'Cache-Control': 'max-age=0', 'Connection': 'keep-alive', # ... 其他需要的头部信息 } ``` 3. 构建请求函数,随机选择一个头部信息进行请求: ```python def fetch_video(url): try: response = requests.get(url, headers=random.choice(list(headers_list.items()))) if response.status_code == 200: print( 参考资源链接:[Python爬虫技巧:生成随机浏览器头部信息以爬取视频](https://wenku.csdn.net/doc/6qvhk9u6qy?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值