用python写一段代码爬取京东2022年京东中萤石品牌摄像头的销售数据
时间: 2023-10-09 21:08:11 浏览: 71
python爬虫之京东商品数据爬取.zip
好的,以下是用Python爬取京东2022年京东中萤石品牌摄像头的销售数据的代码示例:
```python
import requests
from bs4 import BeautifulSoup
import re
# 设置请求头信息
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 根据关键词和页面数构造url链接
def get_url(keyword, page):
url = 'https://search.jd.com/Search?keyword=' + keyword + '&enc=utf-8&page=' + str(page)
return url
# 获取商品销售信息
def get_sale_info(item_id):
url = 'https://c0.3.cn/stock?skuId=' + str(item_id) + '&area=22_1930_49324_0&venderId=0&buyNum=1&choseSuitSkuIds=&cat=1315%2C1343%2C9719&extraParam=%7B%22originid%22%3A%221%22%7D&fqsp=0&pdpin=&pduid=2052144261&ch=1&callback=jQuery3197267'
r = requests.get(url, headers=headers)
json_str = re.findall(r'\((.*?)\)', r.text)[0]
data = json.loads(json_str)
sale_info = {
'sales': data['stock']['curGoodsNum'], # 销售数量
'price': data['stock']['jdPrice']['p'] / 100, # 商品价格
'comment_num': data['stock']['commentCount']['totalCount'], # 评价数量
'score': data['stock']['averageScore']['score'], # 商品评分
}
return sale_info
# 爬取数据
def crawl(keyword, pages):
for i in range(1, pages+1):
url = get_url(keyword, i)
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')
goods_list = soup.find('ul', {'class': 'gl-warp clearfix'}).find_all('li')
for goods in goods_list:
item_id = goods.get('data-sku')
sale_info = get_sale_info(item_id)
print('商品ID:', item_id)
print('销售数量:', sale_info['sales'])
print('商品价格:', sale_info['price'])
print('评价数量:', sale_info['comment_num'])
print('商品评分:', sale_info['score'])
# 测试
crawl('萤石摄像头', 2)
```
说明:
1. 首先我们构造每一页的url链接,然后发送请求获取html文档。
2. 使用BeautifulSoup解析html文档,获取商品列表。
3. 遍历每一个商品,获取商品ID,并根据商品ID构造url链接,获取商品的销售信息。
4. 解析json数据,获取销售数量、商品价格、评价数量和商品评分等信息。
5. 输出商品的销售信息。
阅读全文