python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

前言:

今天为大家带来的内容,是五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码),在这里还是要啰嗦下,为了有更好的观赏性,大部分代码用图片的方式呈现出来!喜欢的话不忘点赞关注不迷路哦!

PyQuery库官方文档

  • 初始化为PyQuery对象
  • 常用的CCS选择器
  • 伪类选择器
  • 查找标签
  • 获取标签信息

初始化为PyQuery对象

bfa93a71124b9bcd08679ed2d643ba32.png

相当于BeautifulSoup库的初识化方法,将html转化为BeautifulSoup对象。

bsObj = BeautifulSoup(html, 'html.parser')

PyQuery库也要有自己的初始化。

1 将字符串初始化

from pyquery import PyQuery as pq#初始化为PyQuery对象doc = pq(html)print(type(doc))print(doc)

返回

04012d07af42e0327f2f53c88522c2e3.png

2 将html文件初始化

#filename参数为html文件路径test_html = pq(filename = 'test.html')print(type(test_html))print(test_html)

返回

47e6e448b30e88afb5c7646384b535c7.png

3 对网址响应进行初始化

response = pq(url = 'https://www.baidu.com')print(type(response))print(response)

返回

提示:接下来就是自行发挥了,具体操作很简单就不做多介绍了!

然后,接着往下看!

二、常用的CCS选择器

打印id为container的标签

print(doc('#container'))print(type(doc('#container')))

返回

b3812b51ab241fa69e86f375e9db512f.png

打印class为object-1的标签

print(doc('.object-1'))

返回

打印标签名为body的标签

print(doc('body'))

返回

94f9909f6f0979e5c9632eeb28c1cefd.png

多种css选择器使用

print(doc('html #container'))

返回

三、伪类选择器

伪类nth

f0901f1439d2d6f627adb67f8d223eaa.png

返回

大法Python好玩

contains

#找到含有Python的li标签print(pseudo_doc("li:contains('Python')"))#找到含有好的li标签print(pseudo_doc("li:contains('好')"))

返回

Python好好好玩小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取

四、查找标签

按照条件在Pyquery对象中查找符合条件的标签,类似于BeautifulSoup中的find方法。

打印id=container的标签

print(doc.find('#container'))

返回

5a5fb50b2371215ac209c83714f8d836.png

返回

2 子辈标签-children方法

#id=container的标签的子辈标签container = doc.find('#container')print(container.children())

返回

3 父辈标签-parent方法

object_2 = doc.find('.object-2')print(object_2.parent())

返回

54eb5253524f13011be25d7dd4d3e9ba.png

4 兄弟标签-siblings方法

object_2 = doc.find('.object-2')print(object_2.siblings())

返回

五、获取标签的信息

定位到目标标签后,我们需要标签内部的文本或者属性值,这时候需要进行提取文本或属性值操作

1 标签属性值的提取

.attr() 传入 标签的属性名,返回属性值

object_2 = doc.find('.object-2')print(object_2.attr('class'))

返回

object-2

2 标签内的文本

.text()

17f8503ee799b300666e08e8d64e15d6.png

返回

简单好用的 PyQuery Hello World! Python 大法 好
5acb68ee53d13fcf30c1f37847287ace.png

返回

Python Hello World! Python 大法 好

tips:如果我只想获得Hello World这个,不想得到其他的文本,可以使用remove方法将li标签去掉,然后再使用text方法

container = docs.find('#container')container.remove('li')print(container.text())

返回

Hello World!

pyquery一些自定义的用法

访问网址

PyQuery与BeautifulSoup对比,我们会发现PyQuery可以对网址发起请求。 比如

from pyquery import PyQueryPyQuery(url = 'https://www.baidu.com')

opener参数

这是PyQuery对百度网址进行请求,并将请求返回的响应数据处理为PyQuery对象。一般pyquery库会默认调用urllib库,如果想使用selenium或者requests库,可以自定义PyQuery的opener参数。

opener参数作用是告诉pyquery用什么请求库对网址发起请求。常见的请求库如urllib、requests、selenium。这里我们自定义一个selenium的opener。

35ba70e34cc2bbb0e764bc75dff7a01b.png

这时候我们就能对PyQuery对象进行操作,提取有用的信息。具体请看上次的分享,如果想了解更多的功能,pyquery文档写的不怎么详细,好在基本跟jQuery功能吻合,我们如果想用好pyquery,需要查看jQuery文档。

cookies、headers

在requests用法中,一般为了访问网址更加真实,模仿成浏览器。一般我们需要传入headers,必要的时候还需要传入cookies参数。而pyquery库就有这功能,也能伪装浏览器。

e82fe15f6f81d4658ed30acf5b98268d.png

让你的selenium带上pyquery功能

让driver访问的网址得到的网页直接变为PyQuery对象,更方便提取数据

6740a3894edce4e92fe53e2758406d21.png

返回

以上就是本文全部内容啦!

最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

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

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

相关文章

uniapp开发实例github_跨端开发痛点?送你一款Vue最流行的跨端框架——uni-app

前言今天来聊一下前端必备技能——小程序开发。从最早发布的微信小程序,到后来的支付宝小程序、字节跳动小程序、百度小程序、QQ小程序,还有最近发布的360小程序,面对这么多套的代码,开发者该如何开发呢?当业务要求同时…

计算机怎么把单元格内容水平居中,win10系统下怎样让Word中的表格内容居中

Word是我们经常会使用到的一款文字处理软件,其具有非常强大的功能。那么,我们应该怎样使Word中的表格内容居中呢?接下来,小编就以 windows10正式版系统 为例,给大家分享具体操作方法。具体如下:1、首先在Word软件中准备…

双稳态电路的两个稳定状态是什么_从双稳态到双“更”稳态 ——叶芳伟课题组在拓扑光子学研究方向上取得新进展...

你拿起一个计算器,输入“26”,计算器会输出“8”;过了一会儿,你又在这个计算器上输入“26”,它依然会输出“8”。这种靠谱的计算器——对于同一个输入,它始终还给我们同一个输出——我们称之为线性计算器或…

【C++专题】static_cast, dynamic_cast, const_cast探讨

首先回顾一下C类型转换:C类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的 算术表达式中, 最宽的数据类型成为目标转换…

安卓工控主板运行时会自动重启_工控主板在工业自动化中的应用

原标题:工控主板在工业自动化中的应用大家都知道随着科技的发展对于工控主板的用途和应用大大超出了工业自动化的范围,而对于本文联智通达小编将仅坚持工业自动化范围内的应用。首先跟随联智通达小编看一下制造以及工业PC的应用以及如何使该领域的工业自…

海量小文件存储

海量小文件存储 [转自:http://www.fuchaoqun.com/2009/04/deal-with-tons-of-small-files/] Web2.0网站,数据内容以几何级数增长,尤其是那些小文件,几K~几百K不等,数量巨多,传统的文件系统处理起来很是吃力…

diff算法_vue源码解读 diff算法

导语 最近碰到部分业务场景,代码逻辑需要了解"数组变更后,具体变更了哪一些元素,以及变更的位置.."。于是仔细研究并覆写了一遍针对数组变化的diff算法,在这里做下diff算法的逻辑分享&&源码解读一.介绍前的准备…

Linux驱动模块编译进内核中

BQ27501驱动编译进内核 一、 驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录; 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项; 3. 在…

黑群晖二合一安装不了套件_玩PT还是得安装transmission,星际蜗牛安装黑群晖制作家用NAS...

原文作者:pt老萌新To小白:黑群晖docker安装PT神器transmission——星际蜗牛安装黑群晖制作家用NAS的折腾日记写在前面:里面的技术方法不是我原创的,都是网上找的,侵删。折腾的过程记录是原创的(好像没啥原创的了)&…

spring boot web项目_阿里技术专家带你使用Spring框架快速搭建Web工程项目

点击上方 "程序员小乐"关注, 星标或置顶一起成长 第一时间与你相约 每日英文 We all have a past. It’s how you deal with it. 每个人都有过去,只是取决于你怎么去处理。 每日掏心话 人不都是这样吗,安慰别人的时候头头是道,自己…

git 代码回滚_能提交到远程的Git回滚

很多情况下我们需要回滚代码,最容易想到的就是git reset。但是git reset有个弱点,它是一个彻底的回滚,不能再提交给远程了,因为在提交记录里回滚点之后的记录都不见了。做一下试验,一个文件我们提交了三次之后回滚#往前…

Mysql数据库的几大优势

为什么开源社区买mysql的帐, MySQL数据库的吸引开源社区的几大特质: 客户为什么会考虑购买MySQL 企业版Enterprise Edition : 转载于:https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2968208.html

c语言e怎么表示_来测测!这11个C语言入门基础知识你都掌握了吗?

文章字数:8400 干货指数:⭐⭐⭐⭐⭐C语言程序的结构认识用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。例1:计算两个整数之和的c程序:#include main…

Oracle甲骨文8.7亿美元高价收购Eloqua

北京,2012年12月20日—— 甲骨文今天宣布,已与领先的云营销自动化和收入绩效管理软件供应商Eloqua公司(NASDAQ代码:ELOQ)达成收购协议,收购价为每股23.50美元,总额约为8.71亿美元。Eloqua的现…

hp服务器如何ghost系统,惠普(HP)电脑安装不了GHOST系统的解决办法

你还在为不知道惠普(HP)电脑安装不了GHOST系统的解决办法而不知所措么?下面来是学习啦小编为大家收集的惠普(HP)电脑安装不了GHOST系统的解决办法,欢迎大家阅读:惠普(HP)电脑安装不了GHOST系统的解决办法1、按F10进入CMOS2、找到电源设置项(Power Manag…

azm335x 串口配置

任务: 配置uart3和uart5 UART3 UART5 配置uart3 1. 修改mmu33xx.c _AM33XX_MUXENTRY(MII1_RXD3, 0, "mii1_rxd3", NULL, "rgmii1_rd3", "mmc0_dat5", "mmc1_dat2", NULL, "mcasp0_axr0", "gpio2_…

投影仪显示播放服务器连接异常,「投影仪维修」常见投影机故障如何解决?

投影机维修方法有哪些一、接通电源后无任何反应投影机在接通电源后,没有任何反应,说明投影机的电源供电部分很可能发生了问题。首先,你应该先检查一下投影机的外接电源规格是否与投影机所要求的标准相同,比方说要是外接电源插座没…

python画饼图程序_python使用matplotlib画饼状图

本文实例为大家分享了python使用matplotlib画饼状图的具体代码,供大家参考,具体内容如下 代码与详细注释 from matplotlib import pyplot as plt #调节图形大小,宽,高 plt.figure(figsize(6,9)) #定义饼状图的标签,标签…

我的世界服务器显示英文,我的世界pixelmon服务器技能显示英文

满意答案zihezimu2019.04.21采纳率:43% 等级:13已帮助:4603人解决神奇宝贝服务器在精灵对战中技能显示为英文,并且对战后名字显示为英文的问题心得 联机教程 1282 浏览1 评论殒天 Lv.7 猎手2017-2-18 09:49:51很多神奇宝贝服务…

python如果想测试变量的类型、可以使用_python里测试变量类型用什么

Python中测试变量类型可以使用isinstance()函数或type()函数来完成。 isinstance() 函数: isinstance()函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance()函数的语法:isinstance(object, classinfo) 参数: object -- 实例对…