Python爬虫小技巧之伪造随机的User-Agent

下面我会详细讲解Python爬虫中伪造随机User-Agent的完整攻略,包含以下几个步骤:

下面我会详细讲解Python爬虫中伪造随机User-Agent的完整攻略,包含以下几个步骤:

1. 了解User-Agent

在进行爬虫时,我们通常需要向目标网站发送请求,根据传递的User-Agent信息,目标网站会返回不同的内容,因此在编写爬虫时,我们通常要进行User-Agent的设置。User-Agent是一个描述浏览器的字符串,包含了浏览器的类型、版本、操作系统等信息。

2. 随机生成User-Agent

为了防止被爬虫识别或者被封IP,我们通常需要随机生成User-Agent,这样每次请求都会带着不同的User-Agent,从而避免被目标网站拦截。下面是Python中随机生成User-Agent的代码:

import random

user_agent_list = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299",
    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
    ]

user_agent = random.choice(user_agent_list)

在上面的代码中,我们定义了一个user_agent_list列表,包含了多个不同的User-Agent字符串,然后使用random.choice()方法,随机从列表中选择一个User-Agent字符串。

3. 设置请求头

最后,我们需要在请求头中添加User-Agent信息。下面是一个完整的示例代码:

import requests
import random

url = "https://www.example.com"
user_agent_list = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299",
    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
    ]

user_agent = random.choice(user_agent_list)
headers = {'User-Agent': user_agent}
response = requests.get(url, headers=headers)

在上面的代码中,我们随机选择了一个User-Agent,然后创建了一个headers字典,设置了User-Agent的值。最后,我们使用requests.get()方法发送请求,并将headers作为请求头传递进去。这样就完成了伪造随机User-Agent的操作。

接下来,我会通过两个具体的示例,说明如何在Python爬虫中使用伪造随机User-Agent的技巧。

示例1:使用伪造随机User-Agent获取一张图片

下面的示例展示了如何使用随机User-Agent获取一张图片:

import requests
import random
import os

image_url = "https://www.example.com/image.jpg"
user_agent_list = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299",
    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
    ]

user_agent = random.choice(user_agent_list)
headers = {'User-Agent': user_agent}
response = requests.get(image_url, headers=headers)

if response.status_code == 200:
    with open(os.path.basename(image_url), 'wb') as f:
        f.write(response.content)
        print('Image saved successfully.')
else:
    print('Failed to download image.')

在上面的代码中,我们首先定义了一个图片的URL,并随机选择了一个User-Agent,然后发送GET请求获取图片内容。如果请求成功,我们就将图片保存到本地,并输出"Image saved successfully."的信息。如果请求失败,我们则输出"Failed to download image."的信息。这样就完成了使用伪造随机User-Agent获取图片的操作。

示例2:使用伪造随机User-Agent获取网站HTML内容

下面的示例展示了如何使用随机User-Agent获取网站的HTML内容:

import requests
import random

url = "https://www.example.com"
user_agent_list = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299",
    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
    "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",
    ]

user_agent = random.choice(user_agent_list)
headers = {'User-Agent': user_agent}
response = requests.get(url, headers=headers)

if response.status_code == 200:
    print(response.text)
else:
    print('Failed to get HTML content.')

在上面的代码中,我们首先定义了一个网站的URL,并随机选择了一个User-Agent,然后发送GET请求获取网站的HTML内容。如果请求成功,我们就输出网站的HTML内容。如果请求失败,我们则输出"Failed to get HTML content."的信息。这样就完成了使用伪造随机User-Agent获取网站HTML内容的操作。

本文标题为:Python爬虫小技巧之伪造随机的User-Agent

基础教程推荐