爬虫学习案例4

爬取猪八戒网站数据:2024-12-12

使用xpath解析元素,安装依赖库

powershell 复制代码
pip install lxml

使用selenium步骤我的上篇博客有提到,这里就不重复了
selenium使用博客导航

python 复制代码
# 安装pip install lxml,使用xpath
from lxml import etree
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument("--headless")  # 无头模式,不打开浏览器窗口
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")

# 设置ChromeDriver路径
service = Service('D:\\env\\python3\\chromedriver.exe')
keyword = "微信小程序"
url = f"https://www.zbj.com/fw/?k={keyword}"
# 初始化WebDriver
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.get(url)
# 等待页面加载
time.sleep(2)  # 等待内容加载

html = driver.page_source # 原页面
# 使用xpath提取元素
tree = etree.HTML(html)
divList = tree.xpath("/html/body/div[2]/div/div/div[3]/div[1]/div[4]/div/div[2]/div[1]/div[2]/div")
for divItem in divList:
    price_elements = divItem.xpath("./div/div[3]/div[1]/span/text()")
    title_elements = divItem.xpath("./div/div[3]/div[2]/a/span/text()")
    company_elements = divItem.xpath("./div/div[5]/div/div/div/text()")
    sales_elements = divItem.xpath("./div/div[3]/div[3]/div[1]/div/span[2]/text()")
    good_elements = divItem.xpath("./div/div[3]/div[3]/div[2]/div/span[2]/text()")

    price = price_elements[0].strip("¥") if price_elements else "N/A"
    title = keyword.join(title_elements) if title_elements else "N/A"
    company = company_elements[0] if company_elements else "N/A"
    sales = sales_elements[0] if sales_elements else "N/A"
    good = good_elements[0] if good_elements else "N/A"

    print(f"价格: {price}")
    print(f"标题: {title}")
    print(f"商铺名: {company}")
    print(f"销量: {sales}")
    print(f"好评: {good}")
    print("下一家***********************")
driver.quit()  # 关闭浏览器

运行效果:

猪八戒网每次请求的数据都会随机打乱,所以控制台输出的顺序可能与页面的对应不上。

通过keyword变量可以更换查询内容。可以试试其他关键字。。。

相关推荐
YJlio16 分钟前
进程和诊断工具学习笔记(8.19):Hyper-V 来宾调试与符号配置 —— 在虚拟化场景下用 LiveKd 抓现场
网络·笔记·学习
冻感糕人~37 分钟前
Agent框架协议“三部曲”:MCP、A2A与AG-UI的协同演进
java·人工智能·学习·语言模型·大模型·agent·大模型学习
WMX10121 小时前
Origin学习记录
学习
d111111111d2 小时前
MPU6050简介(学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习
好奇龙猫8 小时前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(19):阶段练习
学习
松涛和鸣8 小时前
11.C 语言学习:递归、宏定义、预处理、汉诺塔、Fibonacci 等
linux·c语言·开发语言·学习·算法·排序算法
q***649711 小时前
头歌答案--爬虫实战
java·前端·爬虫
Q***f63513 小时前
后端消息队列学习资源,RabbitMQ+Kafka
学习·kafka·rabbitmq
源码之家13 小时前
基于python租房大数据分析系统 房屋数据分析推荐 scrapy爬虫+可视化大屏 贝壳租房网 计算机毕业设计 推荐系统(源码+文档)✅
大数据·爬虫·python·scrapy·数据分析·推荐算法·租房
循环过三天13 小时前
7.7、Python-常用内置函数
笔记·python·学习