Python3爬虫(七) 解析库的使用之pyquery
2018-06-18 02:42:52来源:未知 阅读 ()
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.伪类选择器
待完善
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:io模型
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python day2-爬虫实现github登录 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash