请帮我用python写个有伪装请求头和动态IP的小爬虫
时间: 2024-06-12 09:04:38 浏览: 46
以下是一个示例代码,可以实现伪装请求头和动态IP的小爬虫。其中,使用了随机的 User-Agent 和代理 IP,以增加爬虫的隐蔽性和稳定性。
```python
import requests
from bs4 import BeautifulSoup
import random
# 随机 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/50.0.2661.102 Safari/537.36',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0',
'Mozilla/5.0 (Windows NT 6.1; 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; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',
]
# 随机代理 IP 列表
proxies = [
'http://127.0.0.1:8080',
'http://127.0.0.1:8888',
'http://127.0.0.1:8000',
]
# 随机选择 User-Agent 和代理 IP
headers = {
'User-Agent': random.choice(user_agents),
}
proxies = {
'http': random.choice(proxies),
'https': random.choice(proxies),
}
# 发起请求
url = 'https://www.baidu.com'
response = requests.get(url, headers=headers, proxies=proxies)
# 解析 HTML
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.text)
```
在上面的示例代码中,我们首先定义了两个列表,分别存储了随机的 User-Agent 和代理 IP。然后,使用 random.choice() 方法随机选择一个 User-Agent 和代理 IP,作为请求的头部信息和代理地址。最后,使用 requests.get() 方法发起请求,并使用 BeautifulSoup 解析 HTML。运行代码后,输出了百度首页的标题信息。
阅读全文