马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小肥狼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[8]/div/div[3]/span').text # 定位第一页的总页数文本
num = int(num[2:]) # 将字符串转为整数,方便下面循环多少次使用
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()[0] # 价格
info = li.xpath('.//div[@class="title-selling-point"]/a/text()')
info = ''.join(info).split()[0] # 商品详情
evaluate = li.xpath('.//div[@class ="evaluate-old clearfix"]//text() ')
if evaluate == ['\n']:
evaluate = ['暂无', '评价']
evaluate = ''.join(evaluate).split()[0] # 评价
shop_name = li.xpath('.//div[@class="store-stock"]/a/text()')[0] # 店名
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表格的步骤就没粘贴进来。分享出来给大家学习一下,这些知识点是我最近在学的爬虫的内容。 |