好的,这个问题我可以回答。首先,爬取
京东、
苏宁易购、
天猫的
商品价格需要分别封装不同的爬虫程序。这里我以
京东为例进行说明。
1. 爬取
京东商品价格的代码
```python
im
port requests
from bs4 im
port BeautifulSoup
def get_jd_price(item_id):
url =
'https://item.jd.com/{}.html
'.format(item_id)
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.36
'}
try:
respo
nse = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text,
'html.parser
')
price = soup.find(
'span
', {
'class
':
'p-price
'}).get_text().strip()
return price
except:
return None
```
这个函数可以根据商品ID获取其在
京东上的
价格。其中,`requests` 和 `BeautifulSoup` 是 Python 爬虫常用的第三方库,用于发起 HTTP 请求和解析页面内容。
2. 使用多线程爬取
价格
```python
im
port threading
item_id_list = [123, 456, 789] # 假设这里有三个商品ID需要查询
价格
prices = {} # 存储每个商品对应的
价格
def get_price(item_id):
price = get_jd_price(item_id)
prices[item_id] = price
threads = []
for item_id in item_id_list:
t = threading.Thread(target=get_price, args=(item_id,))
threads.append(t)
t.start()
for t in threads:
t.join()
# 输出每个商品的
价格
for item_id, price in prices.items():
print(
'商品ID:{},
价格:{}
'.format(item_id, price))
```
这段代码中,我们定义了一个 `get_price` 函数,用于获取某个商品的
价格,并将其存储到 `prices` 字典中。然后,我们创建多个线程,并分别传入不同的商品ID,让每个线程单独去获取
价格。最后,我们使用 `join()` 方法等待所有线程执行完毕,然后输出每个商品的
价格。