Selenium采集京东商城商品信息并存到mysql
时间: 2024-12-25 13:16:21 浏览: 12
Selenium是一个流行的自动化测试工具,也可以用于网页抓取,可以用来模拟用户交互,如点击、填写表单等。如果你想用它从京东商城采集商品信息并存储到MySQL数据库,你需要按照以下步骤操作:
1. **安装依赖**:
- 安装Selenium WebDriver,支持对应浏览器(Chrome、Firefox等)的驱动。
- 安装Python库(如`pymysql`或`mysql-connector-python`)用于连接MySQL。
2. **设置环境**:
- 创建一个Python项目,并导入必要的库,例如`selenium`, `time`, 和数据库连接模块。
3. **初始化浏览器**:
- 使用`webdriver.Chrome()`(或其他浏览器对应版本)初始化浏览器实例。
4. **导航至京东页面**:
- 调用`get('https://www.jingdong.com/')`打开京东首页。
5. **定位元素**:
- 使用Selenium提供的API(如`find_element_by_*`方法)找到商品列表的HTML元素,比如通过CSS选择器或XPath。
6. **遍历商品**:
- 循环遍历每个商品元素,解析其价格、名称、描述等信息。
7. **数据提取**:
- 对每个商品元素应用相应的Xpath或CSS选择器,获取需要的数据。
8. **保存到数据库**:
- 使用数据库操作库,如`cursor.execute()`将抓取的商品信息插入到MySQL表中,记得设置好字段名和值。
9. **处理异常**:
- 完成所有操作后,记得关闭浏览器窗口。
```python
# 示例代码片段
from selenium import webdriver
import pymysql
driver = webdriver.Chrome()
db = pymysql.connect(host='localhost', user='your_username', password='your_password', db='jd_products')
try:
driver.get('https://search.jd.com/Search?keyword=手机')
# 假设商品信息在class为"product-title"的元素内
products = driver.find_elements_by_css_selector('.product-title')
for product in products:
title = product.text
price = product.find_element_by_xpath('.//span[@class="p-price"]').text
# ...其他字段处理...
with db.cursor() as cursor:
sql = "INSERT INTO goods (title, price) VALUES (%s, %s)"
cursor.execute(sql, (title, price))
db.commit()
except Exception as e:
print(f"Error occurred: {e}")
finally:
driver.quit()
db.close()
```
阅读全文