使用selenium 爬取京东上的手机商品信息
时间: 2025-06-21 08:28:06 浏览: 10
Selenium 是一款广泛用于自动化测试的工具,它也可以用于动态网页的爬取,因为它能够模拟真实用户的行为,包括点击、滚动和等待页面加载。在京东这类使用大量JavaScript加载内容的电商平台上,Selenium 尤其有用。
以下是使用 Selenium 爬取京东手机商品信息的基本步骤:
1. 安装必要的库:首先确保已经安装了 `selenium`, `webdriver_manager`, 和支持的浏览器驱动(例如 ChromeDriver)。可以分别使用下面的命令安装:
```bash
pip install selenium webdriver_manager
```
2. 准备浏览器驱动:针对你的浏览器版本下载对应的驱动程序,将其添加到系统路径或指定给 `webdriver_manager`。例如,下载ChromeDriver:
```python
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
```
3. 启动浏览器并导航至目标页面:
```python
driver.get("https://www.jd.com搜索关键词-手机")
```
4. 模拟用户交互:为了加载更多内容或滚动页面,可以使用 `time.sleep()` 或 `WebDriverWait` 阻塞等待直到特定元素存在:
```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 点击下拉箭头加载更多商品
load_more_button = driver.find_element_by_xpath("//a[@class='gl-item-loading']")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(load_more_button)).click()
```
5. 数据抓取:遍历页面寻找包含商品信息的HTML元素,并使用 `get_attribute()` 获取属性值,如商品名称、价格、图片链接等:
```python
items = driver.find_elements(By.CSS_SELECTOR, ".gl-item > div")
for item in items:
title = item.find_element(By.CSS_SELECTOR, ".p-name").get_attribute("innerText")
price = item.find_element(By.CSS_SELECTOR, ".p-price").get_attribute("innerText")
img_url = item.find_element(By.CSS_SELECTOR, ".gl-img img").get_attribute("src")
# ... 保存数据
```
6. 结束会话并清理资源:
```python
driver.quit()
```
阅读全文
相关推荐
















