Python爬虫第二战(使用xpath爬取网站数据)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。

使用xpath爬取猪八戒网站数据

  • 前言


前言

今天学习的主要是关于Python使用xpath来爬取猪八戒网的网页知识的理解和应用


#1.获取首页数据
#2.使用etree.HTML将首页HTML字符串解析为一个节点树对象(类似DOM树)
#3.使用etree.xpath根据标签名来定位元素import requests
from lxml import etreeurl = "https://www.zbj.com/fw/?k=saas"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
page = requests.get(url,headers=headers)
# print(page.text)
html = etree.HTML(page.text)# 以下注释的是这个网址通过右键copy xpath获取的,注意:body下面的第一个div标签是隐藏的overflow:hidden,所以这里divi数量需要-1# /html/body/div[2]/div/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div
divs = html.xpath("/html/body/div[1]/div/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div")
print(divs)
for div in divs:# print("hello")# 其次,这里注意价格div前面有两个div,第一个div什么都没有但是也要算上,自己去数的时候要注意因为它前面没有展开▼缩写▶的三角符号# /html/body/div[2]/div/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div[1]/div/div[3]# 这里的[0]是获取列表的第一个元素,.strip()是用来去掉头尾两部的¥,"sass".join是用SaaS将多个文字拼接起来price = div.xpath("./div/div[3]/div[1]/span/text()")[0].strip("¥")title ="sass".join( div.xpath("./div/div[3]/div[2]/a/span/text()"))company = div.xpath("./div/div[5]/div/div/div/text()")print(title)print(price)print(company)# 以下是采用相对路径
# divs = html.xpath('//*[@id="__layout"]/div/div[3]/div[1]/div[4]/div/div[2]/div/div[2]/div')
# print(divs)
# for div in divs:
#     print("hello")
#     price = div.xpath("./div/div[3]/div[1]/span/text()")
#
#     print(price)

💕 原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{orange}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

收藏,你的青睐是我努力的方向! \textcolor{red}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

🥕 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程同步和进程互斥的区别

如大家所了解的,进程互斥是由互斥资源引起的,即各进程之间共享互斥资源的使用权,这种竞争没有确定的必然联系,哪个进程竞争到互斥资源的使用权,则该资源就归哪个进程使用,从而获得所需资源的进程就可以获得…

ArkTS语言基础之函数

前言 臭宝们终于来到了ArkTS基础之函数,今天我们来学习一下ArkTS的函数的相关知识,上一节中也有一些函数的基础知识。 函数声明 函数声明引入一个函数,包含其名称、参数列表、返回类型和函数体,在下面的例子中,我们声明了一个名…

redis中的hash

Redis中的hash是什么 Hash: 哈希,也叫散列,是一种通过哈希函数将键映射到表中位置的数据结构,哈希函数是关键,它把键转换成索引。 Redis Hash(散列表)是一种 field-value pairs(键值对&#x…

弹簧质点系统(C++实现)

本文实现一个简单的物理算法:弹簧质点系统(Mass-Spring System)。这是一个经典的物理模拟算法,常用于模拟弹性物体(如布料、弹簧等)的行为。我们将使用C来实现这个算法,并结合链表数据结构来管理…

领域大模型

领域技术标准文档或领域相关数据是领域模型Continue PreTrain的关键。 现有大模型在预训练过程中都会加入书籍、论文等数据,那么在领域预训练时这两种数据其实也是必不可少的,主要是因为这些数据的数据质量较高、领域强相关、知识覆盖率(密度…

Wincc项目被锁定无法打开

Wincc项目被锁定无法打开 解决方法 解决方法 一般这种情况是因为项目打开的时候直接关机导致的。 删除项目文件夹的ProjectOpened.lck的文件夹即可 然后即可正常打开项目

SpringBoot3笔记

简介: springboot整合了springframework,整合了许多配置,让我们能够快速创建一个以springframework为基础的项目。 问题: 到目前为止,你已经学习了多种配置Spring程序的方式。但是无论使用XML、注解、Java配置类还是…

DeepSeek和文心一言的区别

文章目录 1.开发公司:2.应用场景:3.训练数据:4.模型架构:5.技术特点:6.语言风格:7.开源性:8.界面与用户体验: 1.开发公司: DeepSeek 由杭州深度求索人工智能基础技术研究…

Windows 10 安装Mysql 8

安装准备 下载 MySQL Windows ZIP版(无安装程序): 进入官网:https://dev.mysql.com/downloads/mysql/ 选择 Windows → 下载 ZIP Archive,例如: mysql-8.0.34-winx64.zip 如果你的电脑没有安装 VC Redi…

ARM分拣机vs传统PLC:实测数据揭示的4倍效率差

在苏州某新能源汽车零部件仓库,凌晨3点的分拣线上依然灯火通明。8台搭载ARM Cortex-A72处理器的智能分拣机正在以每秒3件的速度处理着形状各异的电池包组件,它们通过MES系统接收订单信息,自主规划最优路径,将不同规格的零部件精准…

使用python访问mindie部署的vl多模态模型

说明 今天使用mindie1.0部署了qwen2_7b_vl模型,测试过程出现一些问题,这里总结下。 问题1:transformers版本太低 报错信息: [ERROR] [model_deploy_config.cpp:159] Failed to get vocab size from tokenizer wrapper with ex…

vscode 跳转失败之c_cpp_properties.json解析

{"configurations": [{"name": "Linux", // 配置名称,对应当前平台,VS Code 中可选"includePath": ["${workspaceFolder}/**", // 包含当前工作区下所有文件夹的头文件(递归&…

飞速(FS)解决方案验证实验室搬迁升级,赋能客户技术服务

飞速(FS)解决方案验证实验室近日顺利完成搬迁升级,标志着飞速(FS)在解决方案可行性验证、质量保障以及定制化需求支持方面迈上新台阶,进一步提升了产品竞争力和客户信任度。 全新升级的实验室定位为技术验证…

安装kerberos认证的cdh环境

1、服务端安装 1.1 安装wget yum -y install wget 由于本地已安装过wget,所以显示Nothing to do 1.2 进入 home 目录 cd /home 1.3 下载centos6.7.iso文件,并挂载 wget https://archive.kernel.org/centos-vault/6.7/isos/x86_64/CentOS-6.7-x86_64…

MySQL基础 [六] - 内置函数+复合查询+表的内连和外连

内置函数一般要用select调用 内置函数 日期函数 current_date函数 current_date函数用于获取当前的日期。如下: current_time函数 current_time函数用于获取当前的时间。如下: now函数 now函数用于获取当前的日期时间。如下: date函数 dat…

CS内网渗透 - 如何通过冰蝎 Webshell 上线 Weblogic 服务器到 Cobalt Strike 并绕过杀软检测(360、火绒)?

目录 1. 冰蝎连接上 Weblogic 服务器如何上线到 Cobalt Strike 2. 服务器安装杀毒工具如何绕过杀软上线到 Cobalt Strike 2.1 杀软对 Webshell 命令执行的检测及绕过 2.2 杀软对 Cobalt Strike 上线木马的检测及绕过 2.3 杀软对这两方面的限制及综合绕过 3. 如何生成免杀…

[ctfshow web入门] web10

前置知识 cookie Cookie是网站存储在浏览器中的小数据片段,用于识别用户、保持登录状态或记住偏好设置。 也就是说,我以会员A的身份登录了网站,网站会发送一段cookie(会员卡)给我,上面写着会员卡A,下一次我再访问&am…

蓝桥杯:日期统计

文章目录 问题描述解法一递归解法二:暴力破解 问题描述 首先我们要了解什么是子序列,就是一个序列之中可以忽略元素但是不能改变顺序之后获得的序列就叫做子序列。 如"123"就是"11234"的子序列而不是"11324"的子序列 解法…

蓝桥杯 C/C++ 组历届真题合集速刷(一)

一、1.单词分析 - 蓝桥云课 &#xff08;模拟、枚举&#xff09;算法代码&#xff1a; #include <bits/stdc.h> using namespace std;int main() {string s;cin>>s;unordered_map<char,int> mp;for(auto ch:s){mp[ch];}char result_charz;int max_count0;fo…

重塑知识的引擎:人工智能如何改变知识的生产与传播

一、引言&#xff1a;知识的边界正在被人工智能重构 千百年来&#xff0c;人类对于“知识”的获取方式一直遵循着某种路径依赖&#xff1a;感知现实 → 归纳总结 → 文字表达 → 教育传承 → 学术沉淀。这一过程复杂而缓慢&#xff0c;需要经过代际的努力才能实现知识的积累与…