京东商城有大量的商品数据,在搜索框中输入某类商品,例如"手机",就可以看到近百页手机的信息。现在我们使用Selenium编写一个爬虫程序,自动在输入框输入"手机",自动翻页爬取所有手机的数据与图像,并保存到数据库。
时间: 2024-05-10 11:19:16 浏览: 91
selnium模块实现自动翻页并爬取商品信息
好的,这个任务可以分为以下几个步骤:
1. 安装Selenium和ChromeDriver
2. 打开京东商城并自动输入搜索关键字"手机"
3. 点击"搜索"按钮
4. 等待搜索结果页面加载完成
5. 获取当前页面的所有商品信息和图像链接
6. 将商品信息和图像链接存入数据库
7. 自动翻页并重复步骤5-6直到所有页面都被爬取
下面是具体的代码实现,需要注意的是这里只提供了基本框架,具体实现还需要根据实际情况进行调整和优化。同时,如果需要保存商品图像到本地,还需要额外编写相关代码。
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import sqlite3
# Step 1: 安装Selenium和ChromeDriver
# Step 2: 打开京东商城并自动输入搜索关键字"手机"
driver = webdriver.Chrome()
driver.get("https://www.jd.com/")
search_box = driver.find_element_by_id("key")
search_box.send_keys("手机")
# Step 3: 点击"搜索"按钮
search_box.send_keys(Keys.RETURN)
# Step 4: 等待搜索结果页面加载完成
time.sleep(5)
# Step 5-6: 获取当前页面的所有商品信息和图像链接,并将其存入数据库
conn = sqlite3.connect('jd_data.db')
c = conn.cursor()
while True:
# 获取当前页面的所有商品信息和图像链接
products = driver.find_elements_by_css_selector('.gl-item')
for product in products:
# 提取商品信息和图像链接,并存入数据库
info = product.find_element_by_css_selector('.p-name').text
img_url = product.find_element_by_css_selector('img').get_attribute('src')
c.execute("INSERT INTO products (info, img_url) VALUES (?, ?)", (info, img_url))
conn.commit()
# 自动翻页并重复步骤5-6直到所有页面都被爬取
next_page = driver.find_element_by_css_selector('.pn-next')
if 'disabled' in next_page.get_attribute('class'):
break
else:
next_page.click()
time.sleep(5)
conn.close()
driver.quit()
```
在上面的代码中,我们使用了Selenium模拟浏览器的操作来自动化搜索和翻页,并使用了SQLite数据库来存储商品信息和图像链接。需要注意的是,由于京东商城的搜索结果页面是动态加载的,所以需要等待一定时间让页面加载完成后再提取数据。
阅读全文