分享好友 最新动态首页 最新动态分类 切换频道
Python爬虫:教你四种姿势解析提取数据
2024-12-23 21:40

翻页查看url变化规律

Python爬虫:教你四种姿势解析提取数据

 

start参数控制翻页,start = 25 * (page - 1

正则表达式是一个特殊的字符序列,它能帮助你方便地检查一个字符串是否与某种模式匹配,常用于数据清洗,也可以顺便用于爬虫,从网页源代码文本中匹配出我们想要的数据。

re.findall

  • 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

  • 注意:match和 search 是匹配一次;而 findall 匹配所有。

  • 语法格式为:findall(string[, pos[, endpos]])

  • string : 待匹配的字符串;pos : 可选参数,指定字符串的起始位置,默认为 0;endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。

示例如下

 

代码如下

 
 
 
 
  • find( )只提取首个满足要求的数据

  • find_all( )提取出的是所有满足要求的数据

代码如下

 
 
 
  • 每个网页,都有一定的特殊结构和层级关系,并且很多节点都有 id 或 class 作为区分,我们可以借助它们的结构和属性来提取信息。

  • 强大的 HTML 解析库:pyquery,利用它,我们可以直接解析 DOM 节点的结构,并通过 DOM 节点的一些属性快速进行内容提取。

如下示例:在解析 HTML 文本的时候,首先需要将其初始化为一个 pyquery 对象。它的初始化方式有多种,比如直接传入字符串、传入 URL、传入文件名等等。

 

结果如下

 

首先引入 pyquery 这个对象,取别名为 pq,然后定义了一个长 HTML 字符串,并将其当作参数传递给 pyquery 类,这样就成功完成了初始化。接下来,将初始化的对象传入 CSS 选择器。在这个实例中,我们传入 li 节点,这样就可以选择所有的 li 节点。

代码如下

 
 
 

Xpath是一个非常好用的解析方法,同时也作为爬虫学习的基础,在后面的 Selenium 以及 Scrapy 框架中也会涉及到这部分知识。

首先我们使用 lxml 的 etree 库,然后利用 etree.HTML 初始化,然后我们将其打印出来。其中,这里体现了 lxml 的一个非常实用的功能就是自动修正 html 代码,大家应该注意到了,最后一个 li 标签,其实我把尾标签删掉了,是不闭合的。不过,lxml 因为继承了 libxml2 的特性,具有自动修正 HTML 代码的功能,通过 xpath 表达式可以提取标签里的内容,如下所示

 
 

代码如下

 
 
 
  • 爬取网页数据用正则表达式的话,可以直接从网页源代码文本中匹配,但出错率较高,且熟悉正则表达式的使用也比较难,需要经常翻阅文档。

  • 实际爬取数据大多基于 HTML 结构的 Web 页面,网页节点较多,各种层级关系。可以考虑使用 Xpath 解析器、BeautifulSoup解析器、PyQuery CSS解析器抽取结构化数据,使用正则表达式抽取非结构化数据。

  • Xpath:可在 XML 中查找信息;支持 HTML 的查找 ;通过元素和属性进行导航,查找效率很高。在学习 Selenium 以及 Scrapy 框架中也都会用到。

  • BeautifulSoup:依赖于 lxml 的解析库,也可以从 HTML 或 XML 文件中提取数据。

  • PyQuery:Python仿照 jQuery 严格实现,可以直接解析 DOM 节点的结构,并通过 DOM 节点的一些属性快速进行内容提取。

对于爬取网页结构简单的 Web 页面,有些代码是可以复用的,如下所示

 

伪装请求头,并可以随机切换,封装为函数,便于复用。

 

请求网页,返回状态码为 200 说明能正常请求,并返回网页源代码文本。

点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉Python书籍和视频合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉Python副业创收路线👈

这些资料都是非常不错的,朋友们如果有需要《Python学习路线&学习资料》点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

最新文章
王者代练:游戏技能升级与快速上分的秘密武器
在当今社会,电子竞技已经成为一种全新的竞技方式,吸引了众多游戏爱好者的关注。王者荣耀作为其中最受欢迎的游戏之一,更是让无数玩家为之疯狂。然而,对于许多玩家来说,想要在游戏中取得更高的排名和更好的成绩并不容易。这时,“王者代
高效开发Maven架构设计图解/掌握项目工程自动化技巧(精通篇三)
Maven是一个项目管理和构建自动化工具,主要服务于基于Java的项目。它使用一个名为POM(Project Object Model)的XML文件来描述项目的构建过程、依赖、插件等信息。 肖哥弹架构 跟大家“弹弹” 高并发锁, 关注公
新手申请域名技巧新手怎么注册好一个域名?
  如今,随着互联网的飞速发展,做一个网站已经成为越来越多公司的选择,但是在做一个网站的时候,最重要的一步是申请一个域名,因为我们想打开任何一个网站,都是第一个进入域名的,它作为企业的网络门面,它起到了非常大的作用,但是对
百色市工业和信息化局 百色市发展和改革委员会 关于印发《百色市散装水泥、预拌混凝土
第一章规划编制的原则和依据一、规划编制原则本规划依据国家和自治区相关政策法规,结合当前建材工业转型升级、绿色发展、高质量发展等主题进行编制,规划编制原则要求:一是把握规划的前瞻性,明确百色市散装水泥、预拌混凝土、预拌砂浆行
谷歌浏览器:Google Chrome (Win&Mac) 最新版
Google Chrome是一款由Google开发的免费网络浏览器软件。它是目前最受欢迎和广泛使用的浏览器之一,可在多个操作系统上运行,包括Windows、MacOS、Linux和移动平台。以下是Google Chrome的一些主要特点和功能:快速速度:Chrome以其快速的
森林人最新款,揭秘森林人最新款车型:全面升级与技术创新
  揭秘森林人最新款车型:性能升级与技术革新  摘要:本文将详细&#
SEO全攻略,揭秘网站流量与排名双提升的秘诀
SEO推广策略,是全方位提升网站流量与排名的秘诀。通过优化网站内容、关键词布局、外部链接建设、社交媒体互动等多方面手段,提高网站在搜索引擎中的可见度,吸引更多户,从而实现流量的持续增长和排名的提升。掌握SEO技巧,让网站在竞争激
百度seo网站更新_百度seo网站更新不了(百度seo规则改了)
更新是肯定的,也是必须的,但更新周期和频率是我们必要值得留意和学习的 一通太过析偕行网站的更新频率,也可以找到本身网站的更新频率,如同行网站每天都更新一篇文章,则想要高出偕行得到排名,则就必要在包管质的环境下到达量化,逐日
刘雨欣网店教你如何做好基础如何优化?
面临即将来到的双十一,淘宝一年中重要的活动,我相信很多商家甚至以及迫不及待了。首先换季期间,店铺主推款我们都会发现宝贝引流及转化度下滑,店铺整体层级提升遇到瓶颈期,店铺宝贝品类单一,新旧品承接出现问题是很多店铺在运营过程中
黑帽seo里的“黑链优化技巧”
  黑链是每个SEOer值得尝试的一个东西,如果您有闲情找一个赚钱的关键词做一个博客,买链接尝试一下黑链出售,也算是可以证明黑链到底好不好!SEO的因素很多,即便是白帽SEO也会有很多让人意想不到甚至发狂的事情,希望大家做网站优化能放
相关文章
推荐文章
发表评论
0评