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

yizhihongxing

下面我会详细讲解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 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Python urllib request模块发送请求实现过程解析

    Python的urllib.request模块是用于发送HTTP请求的Python内置模块。该模块提供了功能丰富的API,可以完全控制HTTP请求的各个方面,并且支持多种HTTP请求方法和请求头参数设置。本篇攻略将详细讲解urllib.request模块发送请求的实现过程,包括请求对象的构建、请求参数的设定、请求方法的执行、响应对象的处理等。下面进入正题。 …

    python 2023年6月3日
    00
  • Python 生成一个从0到n个数字的列表4种方法小结

    以下是“Python生成一个从0到n个数字的列表4种方法小结”的完整攻略。 1. 生成从0到n的数字列表 在Python中,我们可以使用多种方法生成从0到n的数字列表。下面介绍4种常用的方法。 方法1:使用range()函数 range()函数可以生成一个从0到n-1的数字序列,我们可以将其转换为列表表示,例如: n = 5 my_list = list(r…

    python 2023年5月13日
    00
  • Python Django中间件,中间件函数,全局异常处理操作示例

    Python中的Django框架是Web开发中常用的一种框架,其中的中间件是其实现功能的一个重要组成部分。本文将从中间件、中间件函数以及全局异常处理功能三个方面来详细讲解Python Django中间件的使用方法和实现原理,并通过示例代码进行说明。 1. Python Django中间件的概念和实现原理 中间件是Django框架中的一个重要组成部分,用于在处…

    python 2023年5月13日
    00
  • SyntaxError:尝试在 .tgz 文件上使用 tarfile.open() 时,python 中的语法无效 [重复]

    【问题标题】:SyntaxError: Invalid Syntax in python when trying to use tarfile.open() on a .tgz file [duplicate]SyntaxError:尝试在 .tgz 文件上使用 tarfile.open() 时,python 中的语法无效 [重复] 【发布时间】:2023-…

    Python开发 2023年4月6日
    00
  • 利用python将 Matplotlib 可视化插入到 Excel表格中

    安装依赖和库 首先需要Python版本大于等于3.6,并在环境变量中配置好Python路径。 在命令行窗口中使用pip命令安装openpyxl、pandas和matplotlib库: pip install openpyxl pip install pandas pip install matplotlib 创建Excel表格 在Python代码中创建Exc…

    python 2023年6月6日
    00
  • Python中用Decorator来简化元编程的教程

    让我来详细讲解一下“Python中用Decorator来简化元编程的教程”。 什么是元编程 元编程是指在程序运行的时候对程序自身进行操作或者修改。Python 中的元编程可以通过修改类和函数的定义,或者运行时修改对象等方法来实现。 Python中的Decorator Python中的装饰器(Decorator)是一种特殊的函数,可以用来修改其他函数的功能。装…

    python 2023年5月30日
    00
  • Python中Dict两种实现的原理详解

    Python中Dict两种实现的原理详解 在Python中,字典(Dict)被广泛使用。Python使用了两种不同的技术来实现Dict,分别为散列表(Hash Table)和有序字典(Ordered Dict)。本篇攻略将详细讲解Python中Dict两种实现的原理。 散列表(Hash Table) 散列表(Hash Table)是一种用于快速查找的数据结构…

    python 2023年5月13日
    00
  • win7+Python3.5下scrapy的安装方法

    下面我将详细介绍“win7+Python3.5下scrapy的安装方法”。 1.安装Python3.5 首先,我们需要在电脑上安装Python3.5。你可以到Python的官网 https://www.python.org/downloads/release/python-350/ 下载Python3.5的安装包,并按照提示进行安装。 2.安装scrapy依…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部