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