以下是详细讲解“python爬取淘宝商品详情页数据”的完整攻略,包括步骤和两个示例。
步骤
使用Python爬取淘宝商品详情页数据的步骤如下:
- 导入库:
import requests
、from bs4 import BeautifulSoup
- 发送请求:
response = requests.get(url, headers=headers)
- 解析响应:
soup = BeautifulSoup(response.text, 'html.parser')
- 查找标签:
soup.find_all('tag', attrs={'attribute': 'value'})
- 获取数据:
tag.text
、tag['attribute']
示例1:爬取商品名称和价格
以下是一个示例代码,用于爬取淘宝商品详情页的名称和价格:
import requests
from bs4 import BeautifulSoup
url = 'https://item.taobao.com/item.htm?id=123456789'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('div', attrs={'class': 'tb-detail-hd'}).h1.text.strip()
price = soup.find('div', attrs={'class': 'tb-detail-price'}).strong.text.strip()
print('商品名称:', title)
print('商品价格:', price)
在这个示例中,我们首先导入了requests库和BeautifulSoup库。然后,我们定义了一个URL字符串和一个请求头字典。接着,我们使用get()
函数发送GET请求,并将响应存储在一个变量中。然后,我们创建了一个BeautifulSoup对象,并将响应文本和解析器类型作为参数传递。接着,我们使用find()
函数查找商品名称和价格,并将它们存储在变量中。最后,我们输出商品名称和价格。
示例2:爬取商品评价
以下是示例代码,用于爬取淘宝商品详情页的评价:
import requests
from bs4 import BeautifulSoup
url = 'https://rate.taobao.com/feedRateList.htm?auctionNumId=123456789¤tPageNum=1'
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'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all('div', attrs={'class': 'rate-fulltxt'})
for comment in comments:
print(comment.text.strip())
在这个示例中,我们首先导入了requests库和BeautifulSoup库。然后,我们定义了一个URL字符串和一个请求头字典。接着,我们使用get()
函数发送GET请求,并将响应存储在一个变量中。然后,我们创建了一个BeautifulSoup对象,并将响应文本和解析器类型作为参数传递。接着,我们使用find_all()
函数查找所有评价,并将它们存储在一个列表中。最后,我们遍历列表,并输出每个评价的文本内容。
注意事项
在使用Python爬取淘宝商品详情页数据时,需要注意以下事项:
- 在发送请求时,需要使用requests库发送GET或POST请求,并将请求头字典作为参数传递。
- 在解析响应时,可以使用BeautifulSoup库或其他解析器进行解析。
- 在使用
find()
或find_all()
函数查找标签时,需要将标签名称和属性作为参数传递,并将结果存储在一个变量或列表中。 - 在获取标签属性和文本时,需要使用
tag['attribute']
和tag.text
的形式。
以上就是Python爬取淘宝商品详情页数据的完整攻略,包括步骤和两个示例。