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,一经查实,立即删除!

相关文章

计算机应用基础 第三版 实验报告,计算机应用基础实验报告(windows).doc

计算机应用基础实验报告(windows)实 验 报 告计算机应用基础实验报告姓名 于航 班级 0531132 学 实验日期2013.09.13课程名称 计算机应用基础 指导教师 洪菁 成绩实验名称:windows的基本操作实验目的:掌握桌面主题的设置掌握任务栏的使用和设置掌握任务切…

python 跳一跳辅助_微信跳一跳辅助自动跳Python

#-*- coding: utf-8 -*-""" 思路 核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标,根据两个点的距离乘以一个时间系数获得长按的时间识别棋子:靠棋子的颜色来识别位置,通过截图…

asterisk for mipsel

任务:将asterisk1.8.24.0移植到rt5350上面 交叉工具链:mipsel-linux(3.4.2) 1. 配置asterisk,执行./configure --hostmipsel-linux 找不到termcap和libxml2,分别对他们交叉编译,然后将生成的库拷贝到交叉工具链的lib…

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

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

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

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

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

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

Webots实现大疆Mavic2pro无人机定点飞行

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、将无人机当成一个对象1.1定义无人机相关属性1.2定义用于控制无人机运动的代码1.3主函数实现无人机的点位固定和飞行检测 二、用键盘控制测试代码三、效果展…

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

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

浅谈程序员的职业规划

不知不觉参加工作成为程序员已经4年多,记得上高中的时候,从网络上知道了很多IT精英创业成功的例子,如没有读过大学的“汽车之家”创始人李想、facebook创始人马克扎克伯格,让我觉得互联网是个充满梦想的舞台,只要有想法…

python调用数据库数据创建函数_Pyhton应用程序数据库函数封装

1.函数2.迭代器3.递归4.数据库函数5.fetchall函数1.函数:实现指定功能代码的集合def 函数名( ) :2.在python中没有括号,函数体以缩进的方式进行展示快捷键:tab实现了函数的缩进,shifttab实现前移3.调用:函数名( )作用&…

电子计算机和多媒体教材分析,人教新课标:电子计算机与多媒体教材分析

电子计算机与多媒体(4篇)主要内容:本文简要地介绍了电子计算机的发明到多媒体的运用的基本情况,展示了电子计算机的飞速发展和灿烂前景。课文从美国史密森博物馆里存放的世界上第一台电子计算机写起,先概括地交代了电子计算机的飞速发展和它在…

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

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

am335x gpio驱动

任务: GPIO0_19(带下拉)作为中断, GPIO0_20(带上拉)和GPIO1_14作为输出管脚,GPIO0_11(带下拉)和 GPIO1_15(带上拉)。并编写驱动程序。

海量小文件存储

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

与0xf2值相等的是python_腾讯笔试题涵盖的基础知识

1.下列减少内存碎片的方法有哪些是正确的?增加实际申请和释放的次数频繁调用的子函数尽量使用栈内存系统申请一大块内存,自己实现内存分配和释放,定时清理内存降低虚拟内存的大小解答:答案2,3是正确的。属于操作系统中内存管理的问…

重庆大学 计算机组成原理,重庆大学计算机组成原理集(含部分)解决方案.doc

《计算机组成原理》试题集一、选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。1.反映计算机基本功能的是( )A)操作系统 B)系统软件 C)指令系统 D)数据库系统2.若二进制数为1111.101,则…

diff算法_vue源码解读 diff算法

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

Linux驱动模块编译进内核中

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

oracle 的进程

W000: Wnnn命名为W000,W001,W002.....,由smcO动态产生执行上述相关任务。 Pmon: Pmon后台进程负责一下的工作:进程异常终止,会话被杀掉,事务超过空闲时间,网络连接超时,将实例信息注册到监听器上,手工注册 altersystem register; Pmon进程的清…

请简述计算机硬件系统的运行过程,操作系统简述题

✔什么是操作系统?它的功能?操作系统是控制和管理计算机硬件和软件资源,合理地组织计算机工作流程以及方便用户使用计算机系统的程序的集合。功能:处理机管理,存储器管理,I/O设备管理和文件管理以及作为操作…