爬虫实战之selenium爬取京东电商数据
程序员文章站
2022-05-02 17:01:45
...
- 基本原理:
- 主要利用selenium进行提取页面信息并不断点击下一页
- 代码如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020/06/16 23:37:06
# @File : 爬取京东电商数据.py
# @Sortware: Vsc
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
def spider(url, keyword):
driver = webdriver.Chrome(r'/Users/amoryan/Downloads/chromedriver')
# 输入京东地址
driver.get(url)
# 定位输入框
input_tag = driver.find_element_by_id('key')
# 模拟键盘输入关键字
input_tag.send_keys(keyword)
# 键盘操作
input_tag.send_keys(Keys.ENTER)
# 等待
time.sleep(5)
get_goods(driver)
def get_goods(driver):
# 查找多个节点
goods = driver.find_elements_by_class_name('gl-item')
for good in goods:
# 链接
link = good.find_element_by_tag_name('a').get_attribute('href')
# 名字
name = good.find_element_by_class_name('p-name em').text.replace('\n', '')
# 价格
price = good.find_element_by_class_name('p-price i').text
# 评论
commit = good.find_element_by_class_name('p-commit a').text
# 格式化
msg = '''
商品:%s
链接:%s
价格:%s
评论:%s
''' %(name, link, price, commit)
print(msg)
# 点击下一页,通过定位超链接上面的文本元素
button = driver.find_element_by_partial_link_text('下一页').click()
time.sleep(2)
# 再次调用函数,不断循环
get_goods(driver)
spider('https://www.jd.com/', keyword='口罩')