设置代理和随机User-Agent
时间: 2023-10-25 16:06:36 浏览: 131
user_agents.txt
好的,以下是一个可以爬取京东商品信息并进行可视化的Python爬虫示例代码,其中包括了设置代理和随机User-Agent的代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
from fake_useragent import UserAgent
url = "https://search.jd.com/Search?keyword=Python&enc=utf-8&wq=Python&pvid=74c9e6f6d2c14a4aaf3d2c3fb0c2b6b7"
# 设置代理和随机User-Agent
proxies = {
'http': 'http://127.0.0.1:1080',
'https': 'http://127.0.0.1:1080'
}
headers = {
'user-agent': UserAgent().random
}
response = requests.get(url, headers=headers, proxies=proxies)
soup = BeautifulSoup(response.text, "html.parser")
product_list = []
for item in soup.select('li.gl-item'):
p_name = item.select('.p-name em')[0].text.strip()
p_price = item.select('.p-price i')[0].text.strip()
product_list.append({'name': p_name, 'price': float(p_price)})
df = pd.DataFrame(product_list)
df = df.drop_duplicates() # 去重
df = df.sort_values(by='price', ascending=False) # 按价格排序
# 可视化
plt.figure(figsize=(10, 8))
plt.bar(df['name'], df['price'])
plt.xticks(rotation=90)
plt.xlabel('商品名称')
plt.ylabel('价格(元)')
plt.title('京东Python商品价格分布')
plt.show()
```
该代码引入了fake_useragent库,用于生成随机的User-Agent,可以有效避免被反爬虫机制识别。同时,设置了一个本地代理,可以使用代理IP来访问京东,增加爬取成功的几率。
需要注意的是,代理IP的获取和使用需要谨慎,不要使用不可靠的代理,否则可能会导致爬取失败或者被封禁。
阅读全文