在大数据时代,从电商平台获取商品信息对于市场分析、竞品研究等具有重要意义。Python 作为一门功能强大的编程语言,为我们实现这一目标提供了便利。本文将详细介绍如何使用 Python 爬取淘宝商品的核心信息,包括标题、销量、主图和店铺。
一、准备工作
- 安装必要的库:在 Python 中,我们主要使用
requests
库来发送 HTTP 请求,BeautifulSoup
库来解析 HTML 页面,re
库用于正则表达式操作。你可以使用以下命令进行安装:
bash
pip install requests beautifulsoup4
- 了解淘宝反爬虫机制:淘宝作为大型电商平台,具备完善的反爬虫机制。为了成功爬取数据,我们需要模拟浏览器行为,设置请求头,让服务器认为我们是真实用户在访问。
二、代码实现
- 发送请求并获取页面:
python
import requests
def get_html(url, headers):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
print(f"请求失败,状态码:{response.status_code}")
except requests.RequestException as e:
print(f"请求发生异常:{e}")
return None
- 解析 HTML 页面:
python
from bs4 import BeautifulSoup
def parse_html(html):
if not html:
return []
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', class_='item J_MouserOnverReq ')
results = []
for item in items:
title = item.find('div', class_='row row-2 title').a.get('title')
sale = item.find('div', class_='deal-cnt').text.strip()
img_url = item.find('img', class_='img')['src']
shop = item.find('div', class_='shop').a.text.strip()
result = {
'标题': title,
'销量': sale,
'主图链接': img_url,
'店铺': shop
}
results.append(result)
return results
- 整合代码并运行:
python
if __name__ == '__main__':
keyword = '手机'
url = f'https://s.taobao.com/search?q={keyword}'
headers = {
'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
html = get_html(url, headers)
results = parse_html(html)
for result in results:
print(result)
三、代码说明
- 发送请求部分:
get_html
函数接收目标 URL 和请求头作为参数,使用requests.get
方法发送 GET 请求。如果请求成功,返回页面 HTML 文本;否则,打印错误信息。 - 解析页面部分:
parse_html
函数使用BeautifulSoup
解析 HTML。通过查找特定的 HTML 标签和类名,提取商品的标题、销量、主图链接和店铺信息,并将其存储在字典中,最后返回包含所有商品信息的列表。 - 主程序部分:定义要搜索的关键词,构建淘宝搜索 URL,设置请求头。调用
get_html
获取页面,再调用parse_html
解析页面,最后打印出提取到的商品信息。
四、注意事项
- 遵守法律法规:在进行数据爬取时,务必遵守相关法律法规,不得用于非法目的,如商业竞争中的恶意数据获取等。
- 反爬虫应对:淘宝的反爬虫机制不断更新,上述代码可能需要根据实际情况进行调整。例如,可能需要添加代理 IP、验证码识别等功能。
- 数据处理与存储:实际应用中,爬取到的数据可能需要进一步处理,如清洗、分析等,并存储到合适的数据库中,以便后续使用。
通过以上步骤,你已经学会使用 Python 爬取淘宝商品的核心信息。希望这篇文章能帮助你在数据获取与分析的道路上更进一步。