在京东商城,爬取荣耀手机型号、店铺名称、价格和评论条数,并存储的CSV文件中
时间: 2024-04-05 15:33:57 浏览: 187
读取文件显示在dataGridView
好的,你可以使用Python爬虫来爬取京东商城上荣耀手机的数据。这里提供一个示例代码供你参考。
```python
import requests
import csv
from bs4 import BeautifulSoup
# 请求头部信息
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'}
# 要爬取的页数
pages = 10
# 要爬取的品牌
brand = '荣耀'
# 保存数据的文件名
filename = 'data.csv'
# 打开CSV文件
with open(filename, 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
# 写入表头
writer.writerow(['品牌', '型号', '店铺名称', '价格', '评论'])
# 循环爬取每一页的数据
for page in range(1, pages+1):
# 构造请求URL
url = f'https://search.jd.com/Search?keyword={brand}&page={page}&s=1&click=0'
# 发送请求
response = requests.get(url, headers=headers)
# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有商品信息的标签
items = soup.select('.gl-item')
# 遍历每个商品,提取相关信息并写入CSV文件
for item in items:
# 提取型号
name = item.select('.p-name em')[0].text.strip()
# 如果名字包含品牌名称,则提取店铺名称、价格和评论
if brand in name:
try:
shop = item.select('.p-shop span a')[0].text.strip()
except:
shop = '暂无店铺信息'
price = item.select('.p-price i')[0].text.strip()
comment = item.select('.p-commit strong a')[0].text.strip()
writer.writerow([brand, name, shop, price, comment])
```
这段代码会爬取前10页荣耀手机的数据,并保存到名为"data.csv"的CSV文件中。你可以根据自己的需求修改页数、品牌和文件名。同时,为了避免被京东屏蔽,建议适当加入随机延时和IP代理等措施。
阅读全文