Python3爬虫(七) 解析库的使用之pyquery

Infi-chu:

http://www.cnblogs.com/Infi-chu/

pyquery专门针对CSS和jQuery的操作处理

1.初始化
字符串初始化

from pyquery import PyQuery as pq
doc = pq(html)	# 传入html文本
print(doc(‘li‘))

URL初始化

from pyquery import PyQuery as pq
doc = pq(url=‘www.baidu.com‘)
print(doc(‘title‘))
# 另一种方法
from pyquery import PyQuery as pq
import requests
doc = pq(requests.get(‘http://www.baidu.com‘))
print(doc(‘title‘))

文件初始化

from pyquery import PyQuery as pq
doc = pq(filename=‘text.html‘)
print(doc(‘li‘))

2.基本CSS选择器

from pyquery import PyQuery as pq
doc = pq(url=‘http://www.baidu.com‘)
print(doc(#head .head_wrapper a))
print(type(doc(#head .head_wrapper a)))

3.查找节点
子节点

from pyquery import PyQuery as pq
doc = pq(url=‘http://www.baidu.com‘)
items = doc(‘.head_wrapper‘)
print(type(items))
print(items)
lis = items.find(‘a‘)	# find()是查找符合条件的所有子孙节点,只查找子节点的可以使用children()
print(type(lis))
print(lis)

父节点
使用parent()方法获取该节点的父节点
使用parents()方法获取该节点的祖先节点

兄弟节点
使用siblings()方法获取兄弟节点

4.遍历

from pyquery import PyQuery as pq
doc = pq(html)
lis = doc(‘li‘).items()
print(type(lis))
for li in lis:
    print(li,type(li))

5.获取信息
获取属性
使用attr()方法获取属性(值)

from pyquery import PyQuery as pq
doc = pq(url=‘http://www.baidu.com‘)
items = doc(‘.head_wrapper‘)
print(items.attr(‘href‘))
# 也可以写成
print(items.attr.href)

# 获取所有a的属性
from pyquery import PyQuery as pq
doc = pq(url=‘http://www.baidu.com‘)
a = doc(‘a‘)
for i in a:
    print(i.attr.href)

获取文本
使用text()方法获取纯文本纯字符串内容

from pyquery import PyQuery as pq
doc = pq(url = ‘http://www.baidu.com‘)
a = doc(‘a‘)
print(i.text())    # 无需遍历

使用html()方法保留标签内部的东西

from pyquery import PyQuery as pq
doc = pq(url = ‘http://www.baidu.com‘)
a = doc(‘a‘)
for i in a:
    print(i)
    print(i.html())

6.节点操作
addClass和removeClass

from pyquery import PyQuery as pq
html = ‘‘‘
<div class="wrap">
<div id="container">
<ul class="list">
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0 active"><a href="link3.html"><span class"bold">third item</span></a></li>
<li class="item-1 active"><a href="link4.html">fourth item</a></li>
<li class="item-0 active"><a href="link5.html">fifth item</a></li>
</ul>
</div>
</div>
‘‘‘
doc = pq(html)
li = doc(‘.item-0 active‘)
print(li)
li.removeClass(‘active‘)
print(li)
li.addClass(‘active‘)
print(li)

attr、text和html

from pyquery import PyQuery as pq
html = ‘‘‘
<div class="div">
<p>ASD</p>
<ul class="list">
<li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
</ul>
</div>
‘‘‘
doc = pq(html)
li = doc(‘.item-0 active‘)
print(li)
li.attr(‘name‘,‘link‘)
print(li)
li.text(‘changed item‘)
print(li)
li.html(‘<span>changed item</span>‘)
print(li)

remove()

from pyquery import PyQuery as pq
doc = pq(html)
res = doc(‘.div‘)
print(res.find(‘ul‘).remove().text())

7.伪类选择器
待完善

原文地址:https://www.cnblogs.com/Infi-chu/p/8986379.html

时间: 2024-08-30 14:53:07

Python3爬虫(七) 解析库的使用之pyquery的相关文章

Python爬虫【解析库之beautifulsoup】

解析库的安装 pip3 install beautifulsoup4 初始化 BeautifulSoup(str,"解析库") from bs4 import BeautifulSoup html='''<div class="panel"> <div class="panel-heading"> <h4>Hello</h4> </div> <div class="pan

爬虫智能解析库 Readability 和 Newspaper 的用法

舆情爬虫是网络爬虫一个比较重要的分支,舆情爬虫往往需要爬虫工程师爬取几百几千个新闻站点.比如一个新闻页面我们需要爬取其标题.正文.时间.作者等信息,如果用传统的方式来实现,每一个站点都要配置非常多的规则,如果要维护一个几百上千的站点,那人力成本简直太高了. 如果有一种方式可以在保证差不多的准确率的前提下,大幅提高提取效率的话,就需要用到智能文本提取了. 本文首先介绍一下智能文本提取的基本原理,让大家对智能提取有基本的了解.然后介绍几个比较基础的工具包,准确率并不是很高,可以尝试一用.最后再介绍几

解析库之beautifulsoup,pyquery

Beautifulsoup模块 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. Beautiful Soup会帮你节省数小时甚至数天的工作时间.你可能在寻找 Beautiful Soup3 的文档,Beautiful Soup 3 目前已经停止开发. 官网推荐在现在的项目中使用Beautiful Soup 4, 移植到BS4 官网推荐使用lxml作为解析器,因为效率更高. 在Python

python爬虫之解析库Beautiful Soup

Beautiful Soup4操作 为何要用Beautiful Soup Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式, 是一个标签的形式,来进行查找的,有点像jquery的形式.提升效率,我们在进行爬虫开发的时候,进程会用到正则来进行查找过滤的操作,纯手动会及其浪费时间. Beautiful Soup示例摘自官网 html_doc = """ <html>

python3爬虫之Urllib库(二)

在上一篇文章中,我们大概讲了一下urllib库中最重要的两个请求方法:urlopen()  和  Request() 但是仅仅凭借那两个方法无法执行一些更高级的请求,如Cookies处理,代理设置等等. 这是就是Handler大显神威的时候了,简单地说,他是各种处理器,有处理验证登录的,有处理Cookies的,有处理代理设置的. 高级用法 首先说一下urllib.request模块中的BaseHandler类,他是所有类的基类,它提供了最基本的方法,如:default_open()   prot

python爬虫之解析库正则表达式

上次说到了requests库的获取,然而这只是开始,你获取了网页的源代码,但是这并不是我们的目的,我们的目的是解析链接里面的信息,比如各种属性  @href  @class span  抑或是p节点里面的文本内容,但是我们需要一种工具来帮我们寻找出这些节点,总不能让我们自己一个一个复制粘贴来完成吧,那样的话,还要程序员干嘛>>计算机是为了方便人们才被发明出来的. 这次我们使用一个非常好用的工具>>正则表达式,可能有的大佬已经听说过了,哦,就是那么一个东西,并说,不是用css选择器或

爬虫之解析库Xpath

简介 XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起初XPath的提出的初衷是将其作为一个通用的.介于XPointer与XSL间的语法模型.但是XPath很快的被开发者采用来当作小型查询语言. 语法 选取节点 XPath 使用路径表达式在 XML 文档中选取节点.节点是通过沿着路径或者 step 来选取的. [1] 下面列出了最有用的路径表达式: 表达式 描述

爬虫之解析库pyquery

初始化 安装: pip install pyquery 字符串的形式初始化 html = """ <html lang="en"> <head> 简单好用的 <title>PyQuery</title> </head> <body> <ul id="container"> <li class="object-1">Pyth

【Python3 爬虫】U11_BeautifulSoup4之select和CCS选择器提取元素

目录 1.常用CSS选择器介绍 1.1 标签选择器 1.2 类名选择器 1.3 id选择器 1.4 查找子孙元素 1.5 查找直接子元素 1.6 根据属性查找 2.实战演练:select和css选择器提取元素 2.1 获取所有的p标签 2.2 获取第2个p标签 2.3 获取所有class等于t3的span标签 2.4 获取class为t1的p标签下的所有a标签的href属性 2.5 获取所有的职位信息(文本) 1.常用CSS选择器介绍 以下是一个包含常用类选择器的案例,在案例后有具体的选择器使用