python自动化驱动 爬虫 爬取 某电商网站 某风扇 商品数据
本帖最后由 小肥狼haoran 于 2024-6-28 11:55 编辑from selenium import webdriver# 导入自动化测试模块
from lxml import etree# 导入etree模块对HTML内容进行解析
import time# 导入时间模块,强制等待用
browser = webdriver.Chrome()# 谷歌游览器自动化驱动 实例化
def main():
browser.get('https://www.suning.com/')# 实例化需要进入的网站
browser.maximize_window()# 游览器最大化,不然无法拿取第一页的总页数
browser.find_element_by_id('searchKeywords').send_keys('格力风扇')# 定位搜索框,输入搜索关键词
browser.find_element_by_id('searchSubmit').click()# 点击首页搜索按钮
num = browser.find_element_by_xpath('/html/body/div/div/div/span').text# 定位第一页的总页数文本
num = int(num)# 将字符串转为整数,方便下面循环多少次使用
for page in range(num):
scroll()# 调用滚屏函数
time.sleep(0.5)
html = browser.page_source# 网页源码
tree = etree.HTML(html)# 源码给到etree解析
li_list = tree.xpath('//div[@id="product-list"]/ul/li')# xpath规则获取列表
for li in li_list:# 循环取每条数据
price = li.xpath(
'.//div[@class="price-box"]/span[@class="def-price"]//text()')# 价格
if price == ['\n']:
price = ['暂无', '价格']
price = ''.join(price).split()# 价格
info = li.xpath('.//div[@class="title-selling-point"]/a/text()')
info = ''.join(info).split()# 商品详情
evaluate = li.xpath('.//div[@class ="evaluate-old clearfix"]//text() ')
if evaluate == ['\n']:
evaluate = ['暂无', '评价']
evaluate = ''.join(evaluate).split()# 评价
shop_name = li.xpath('.//div[@class="store-stock"]/a/text()')# 店名
label = li.xpath('.//div[@class="sales-label"]//text()')
if label == []:
label = ['暂无标签']
label = ','.join(label)# 商品标签
print(price, info, evaluate, shop_name, label)
try:# 异常处理,尝试执行以下代码
print(f'{page + 1}页数据采集完成')# 告知多少页的数据采集完成
browser.find_element_by_id('nextPage').click()# 查询元素id为nextPage好持续翻下一页
except Exception as e:# 所有异常处理
print(f'{page + 1}页是最后一页采集完成')# 因没有下一页点击了,所以数据爬到最后一页,提示爬完了。
def scroll():# 滚动屏幕函数
for page in range(0, 14000, 1000):# 每次向下滚动1000px,累计滚动14000px
time.sleep(0.2)# 代码休眠,强制等待0.2秒
browser.execute_script(f'window.scroll(0,{page})')# 从0开始,每次累加1000的数值
time.sleep(0.4)# 代码休眠1是网速加载网页内容,2是让测试驱动模仿真人的样子等待。
main()# 调用函数
browser.quit()# 关闭游览器
以上代码可以让自动化驱动打开一个谷歌游览器,假装人进行数据爬取。经过今天一天的仔细研究学习,圆满完成。后面还有一段保存在exc表格的步骤就没粘贴进来。分享出来给大家学习一下,这些知识点是我最近在学的爬虫的内容。 收藏个,先 {:5_106:} lscp 发表于 2024-6-28 09:06
收藏个,先
最后补上了两行代码。调用函数main和关闭游览器,代码结束 sunshine_8205 发表于 2024-6-28 11:33
共勉,一起学习!
页:
[1]