python爬取网站商品信息
时间: 2025-03-26 21:23:19 浏览: 32
### 使用Python爬虫抓取网站上的商品详情
为了实现这一目标,可以采用多种方法和技术栈组合来完成任务。一种常见的做法是使用`Selenium`库配合浏览器驱动程序模拟真实用户的浏览行为加载页面并交互,再借助`BeautifulSoup`解析HTML文档结构从而精准定位所需的数据节点最后导出至Excel表格以便后续处理分析。
#### 安装必要的软件包
在开始之前,确保安装了所需的Python库:
```bash
pip install selenium beautifulsoup4 pandas openpyxl
```
#### 初始化WebDriver实例
创建一个新的Chrome WebDriver对象用于控制自动化浏览器操作流程。这里假设已经下载好了对应版本的chromedriver可执行文件并且放置到了系统的PATH环境变量路径下方便调用[^2]。
```python
from selenium import webdriver
driver = webdriver.Chrome()
url = "https://example.jd.com/product.html"
driver.get(url)
```
#### 解析网页内容
一旦页面完全渲染完毕就可以关闭webdriver转而交给静态解析器继续工作了。此时可以从当前打开的标签页里读取出完整的DOM树状图作为字符串形式传递给bs4构建Tag对象供进一步筛选过滤之用了。
```python
from bs4 import BeautifulSoup
html_content = driver.page_source
soup = BeautifulSoup(html_content, 'lxml')
driver.quit() # 关闭浏览器窗口
```
#### 提取消息体中的关键字段
依据实际需求选取合适的CSS选择器表达式匹配到特定的商品属性比如名称、价格、库存状态等信息项逐一抽取出来形成字典列表等待批量入库或是持久化存储起来待日后查询展示。
```python
items = []
for item_div in soup.select('.goods-item'):
title = item_div.find('h3').text.strip()
price = float(item_div.find(class_='price').get_text().replace('¥', '').strip())
stock_status = True if not item_div.find(text='无货') else False
items.append({
'title': title,
'price': price,
'in_stock': stock_status
})
```
#### 数据保存成电子表格格式
最终一步就是把收集整理好的记录集按照既定模板样式填充进新的xlsx工作簿单元格区域之中去,这样就完成了整个从线上源站拉取公开资料直至本地归档的过程闭环。
```python
import pandas as pd
df = pd.DataFrame(items)
output_file_path = './jd_products.xlsx'
df.to_excel(output_file_path, index=False)
print(f'Data has been written to {output_file_path}')
```
阅读全文
相关推荐
















