'''
需求
使用selenium 爬取任意关键字的商品
自动化selenium:
自动化是模拟真人的步骤
1:访问苏宁页面
2: 元素定位 定位到指定元素(标签) 在这个需求中 是要定位到输入框
3: 输入框 输入对应的关键字
4: 定位到搜索这个元素 进行点击操作
5: 获取页面源码 使用xpath解析
'''
from selenium import webdriver
import time
from lxml import etree
# 实例化驱动
browser = webdriver.Chrome() # 单词C是大写的 后面的括号不能漏
browser.maximize_window()
# 1:访问苏宁页面
browser.get("https://www.suning.com/")
# 2: 元素定位 定位到指定元素(标签) 在这个需求中 是要定位到输入框
# 3: 输入框 输入对应的关键字
browser.find_element_by_id('searchKeywords').send_keys("手机")
# 4: 定位到搜索这个元素 进行点击操作
browser.find_element_by_id('searchSubmit').click()
# 给页面一些加载的时间
time.sleep(2)
# selenium 可以执行js代码
# window.scrollTo(0,document.documentElement.scrollHeight) 拉动滚动条到页面底部
browser.execute_script('window.scrollTo(0,document.documentElement.scrollHeight)')
# 5: 获取页面源码 使用xpath解析
# print(browser.page_source)
time.sleep(5)
tree = etree.HTML(browser.page_source)
li_list = tree.xpath('//ul[@class="general clearfix"]/li')
for li in li_list:
title = li.xpath('.//div[@class="title-selling-point"]/a/text()') # 标题
title = ''.join(title).replace('\n','')
price = li.xpath('.//div[@class="price-box"]/span/text()') # 价格
price = ''.join(price).replace('\n', '')
evaluate = li.xpath('.//div[@class="info-evaluate"]/a//text()') # 评价数
evaluate = ''.join(evaluate)
store = li.xpath('.//div[@class="store-stock"]/a/text()')[0] # 店铺名字
print(title,price,evaluate,store)
# print(price)
使用selenium 爬取苏宁任意关键字的商品
最新推荐文章于 2024-12-28 08:13:34 发布
480

被折叠的 条评论
为什么被折叠?



