python pyquery.get()_Python爬虫之PyQuery使用(六)

Python爬虫之PyQuery使用

PyQuery简介

pyquery能够通过选择器精确定位 DOM 树中的目标并进行操作。pyquery相当于jQuery的python实现,可以用于解析HTML网页等。它的语法与jQuery几乎完全相同,对于使用过jQuery的人来说很熟悉,也很好上手。

初始化

有 4 种方法可以进行初始化:

可以通过传入 字符串、lxml、文件 或者 url 来使用PyQuery

from pyquery import PyQuery as pq

from lxml import etree

d = pq("")#传入字符串

d = pq(etree.fromstring(""))#传入lxml

d = pq(url='http://baidu.com/') #传入url

d = pq(filename=path_to_html_file) #传入文件

基本CSS选择器

html='''

'''

from pyquery import PyQuery as pq

doc = pq(html)

# 获取所有a标签

print(doc('body .mh-col li a'))

注意:

类名用.

id用#

标签用标签名

另外选择的是具有层级关系,从左到右,不是直接的父子的关系。

运行结果如下:

歌手高空拍MV坠亡

佛祖朱龙广金婚

常见租房陷阱

靳东回应发错诗词

煤老板们的影视江湖

1024程序员节

美的合并小天鹅

京昆高速4车相撞

操作

html='''

'''

from pyquery import PyQuery as pq

doc = pq(html)

items = doc('.mh-col')

#.find():查找嵌套元素

alist = items.find('li a')

print(alist)

#查找所有子元素

alist2 = items.children()

print(alist2)

#查找指定的子元素

alist3 = items.children('.g-ellipsis1')

print(alist2)

#查找父元素

#注意:一个元素只有一个父元素

body = items.parent()

print(body)

#查找祖先元素

content = items.parents()

print(content)

#查找兄弟元素

li = doc('.mh-col .g-ellipsis1')

print(li.siblings())

#遍历 单个元素

#遍历所有的a标签

alist =doc('.mh-col li a').items()

for a in alist: print(a)

获取信息

获取属性

a =doc('.mh-col li .g-a-noline8')

print(a.attr['href'])

print(a.attr.href)

获取文本

a =doc('.mh-col li .g-a-noline8')

print(a.text())

获取HTML

a =doc('.mh-col li .g-a-noline8')

print(a.html())

简单的DOM操作

#addClass、removerClass

#修改类名

a =doc('.mh-col li .g-a-noline8')

print(a)

a.removeClass('g-a-noline8')

print(a)

a.addClass('g-a-noline8')

print(a)

#attr、css

#修改属性和样式

a =doc('.mh-col li .g-a-noline8')

print(a)

a.attr('name','link')

print(a)

a.css('font-size','14px')

print(a)

#remove

#删除标签

li = doc('.mh-col .g-ellipsis8')

print(li)

li.find('a').remove()

print(li)

更多的DOM操作:https://pyquery.readthedocs.io/en/latest/api.html

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

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

相关文章

axure web组件下载_Element - 饿了么团队出品的神级桌面 UI 组件库

一套著名的桌面端的组件库,同时提供Sketch、Axure模板资源文件方便快速产品设计。 介绍由饿了么团队出品,一套为开发者、设计师和产品经理准备的组件库,提供了配套axure、sektch设计资源,可以直接下载使用,能帮我等搬砖…

三农电子商务创业创新大赛作品_全国大学生电子商务“创新、创意及创业”挑战赛五邑大学校赛...

大赛简介第十届全国大学生电子商务“创新、创意及创业”挑战赛(简称“三创赛”)是由全国电子商务创新产教联盟主办,由“三创赛”竞赛组织委员会统一策划、组织、管理与实施。“三创赛”由校赛、省赛和国赛三级竞赛组成,分别由教育部认可的全国高校提出申…

程序员的数学 pdf_作为一个程序员,分享我日常学习方式,自学渠道和方式

做了几年程序员,只有高中学生的基础,就做不了高等数学算法相关工作,在有限的技术领域里进行自学做自己能做的业务。学习是少不了的事情,每天一大部分时间都是处于自学状态。第一个平台是慕课网,从高中毕业开始看慕课网…

python中可通过()实现代码的复用_(  )是可复用的,提供明确接口完成特定功能的程序代码块。...

【填空题】PE 表示( )线,PEN表示( )线;【单选题】建筑电气工程平面图中的图例 MEB 表示( )。【其它】自己选择几个著名品牌的官方网站,进行比较归纳,整理出你认为企业官网应当设置的板块,理由是什么?【判断题】实现二十进制计数,要用到进位端Qc。(5.0分)【单选题】截平面垂直于…

apache2 wordpress目录权限_小白指南:WordPress中的用户角色和权限

WordPress本身自带了一套用户角色管理系统,这套系统定义了每个用户角色可以做什么,不可以做什么。随着网站的发展,弄懂这些用户角色和权限的问题是非常有必要的。在这篇小白指南中,我们将用图表的形式对比WordPress中每个用户角色…

mysql binary安装_mysql的二进制安装方式

mysql总共有三种安装方式,源代码安装,二进制安装和源安装。这次写的是二进制安装,对其他两种方式不予讨论。关闭selinux和防火墙上课的时候,老师说过这是重中之重,一定要先关闭selinux和iptables。如果不关闭这两个&am…

mysql分区概念_mysql的分区

在mysql 5.1.3之后引入和partition(分区)的概念。这个是个好东东。以前遇到一个大表的时候,我们会手动将其分为几个小表(就是分表操作)。但是分表操作有几个缺点:1 麻烦,这里指的麻烦是不仅对于调用分表的sql语句的处理上,也是分表…

pytest测试实战pdf_Pytest+Allure美化测试报告

今日推荐音乐:我最爱的霉霉在学习pytest的时候,生成的html报告觉得实在不是很美观,查到资料有很多测试报告的第三方插件,不仅美观而且查看测试用例也很方便,那我们一起来学习下吧~0 1参考案例要学习一个新技术&#xf…

java 递归_采用递归算法求解迷宫问题(Java版) | 附代码+视频

递归算法能够解决很多计算机科学问题,迷宫问题就是其中一个典型案例。本篇教程我们将采用递归算法求解迷宫问题,输出从入口到出口的所有迷宫路径。01用递归算法解决迷宫问题迷宫问题在《数据结构教程》第3章介绍过,设mgpath(int xi&#xff0…

挂机宝装mysql_挂机宝安装

万安挂机宝下载后安装包里有介绍.proxydroid使用说明以雷电模拟器为例永久记住选择 允许 (安卓手机 需要 root 方可使用)设置 账号密码启动即可 下面是详细翻译说明一、下载ProxyDroid。二、对ProxyDroid进行配置(基本配置:)(1) Auto Setting不勾选,我们…

python爬虫是数据挖掘吗_爬虫属于数据挖掘 python为什么叫爬虫

数据挖掘和爬虫有区别吗?数据挖掘和爬虫有很大的区别。数据挖掘过程应用于爬虫的可能性并不是特别大,但所占比例相对较大。但是使用爬虫,一般来说,爬虫都是爬到别人的网站上的,而且有些规则。因此,从数据挖…

python如何训练图片_Python练习第一题,在图片上加入数字

题目:在头像(QQ、微信等)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。下面是示例,在图片上加数字。用PS很简单就可以做到,但是如何用Python完成呢?一、思路:利用Python强大的图片处理库——…

python计算汉明距离_有效地使用python计算汉明距离

python中的distance软件包提供汉明距离计算器:import distancedistance.levenshtein("lenvestein", "levenshtein")distance.hamming("hamming", "hamning")还有一个levenshtein包提供了levenshtein距离计算.最后difflib可…

python给字母赋值_给字母赋值的更快方法?

我试着从列表中的单词中读出每个字符,然后根据单词中的每个字母给它们赋值。我的代码太长了,我相信一定有一个更短的方法来实现它。。。在for c in tempWord:if(c "A"):tempSum 1elif(c "B"):tempSum 2elif(c "C"):t…

web mysql 界面表命名规范_MySql数据库表字段命名及设计规范

1.设计原则1) 标准化和规范化web数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但 Third Normal Form(3NF)一般被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来讲,遵照3NF 标准的数据库的表设计原 则是:“One …

通过代理上网 固定ip_浅析局部代理IP与全局代理IP的使用说明

经常有人问,如何设置局部代理IP,如何设置全局代理IP,今天我们一起来看看。何谓局部代理IP,顾名思义,改变局部的IP,不影响其他程序软件运行的使用IP;所谓全局代理IP,就是改变整个客户…

如何检查私钥和公钥是否配对_如何检查家具是否有臭虫

如果您购买了二手家具,或者家具使用好多年了,那么由于家庭环境等问题,难免会出现臭虫!臭虫可以通过许多不同的方式进入您的房屋,但是最常见的方法之一是您的二手家具。关于臭虫首先,让我们从臭虫入门。这些…

教你如何快速入门python_如何快速入门python

匿名用户1级2018-10-10 回答Python入门到精通学习书籍推荐!1、Python基础教程(第2版 修订版)《Python基础教程(第2版修订版)》包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能&…

利用expect安装mysql_linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解

一、遇到的问题我们使用过mysqldump都知道,使用该命令后,需要我们手动输入 mysql的密码,那么我们就不能够直接在crontab中使用mysqldump实现周期备份。其实我们可以使用expect脚本自动输入密码,从而实现真正的周期备份。如果你不知…

数据结构实验之图论九:最小生成树_初高中数学竞赛训练----图论初步2

例题中有2019年罗马尼亚大师赛第3试题树树:一个连通图,如果没有一个环,则叫树。森林:若干个独立的树形成一个森林。链:一个特殊的树是节点中,除去两个节点的度为1,其它均为2,叫做链。…