pyquery


PyQuery通过css选择器对超文本进行选择

安装

pip install pyquery 

使用

import requests
from pyquery import PyQuery as pq

url = 'https://www.baidu.com/'
r = requests.get(url)
#实例化
doc = pq(r.text)
type(doc)    # pyquery对象

对html内容通过css选择器进行选择,链式选择
选择标签li下的a标签
doc(“li”)(“a”)

类选择器

a = doc(".ab a")   # 先选择类class="ab"的标签,再选该标签下的a标签

id选择器

a = doc("#ab a")   # 先找id="ab"的标签,再选其下的a标签

取属性值和文本

只能取到第一个属性或值

href = doc("#ab a").attr("href") # 先取id为ab的标签,再找它的子标签a的href属性值
text = doc("#ab a").text()

取一批标签和属性值

items = doc("li a").items()  # 取li标签下所有a标签的属性值和文本值
for item in items:
	href = item.attr("href")
	text = item.text()
	print(text, href)

.html()和.text()属性

html = doc("div").html()  # 取div下所有的标签及内容
html = doc("div").text()   # 取div下文本,不要标签

更改Html

from pyquery import PyQuery

html = '''
<dl class="special ">
    <dt>特色百科</dt>
    <dd>
        <div class="aaa"><a href="/museum" target="_blank">数字博物馆</a></div>
        <div><a href="" target="_blank">非遗百科</a></div>
        <div><a href="" target="_blank">恐龙百科</a></div>
        <div><a href="" target="_blank">多肉百科</a></div>
        <div><a href="/art" target="_blank">艺术百科</a></div>
        <div><a href="/science" target="_blank">科学百科</a></div>
    </dd>
</dl>
'''
pq = PyQuery(html)
pq("div.aaa").after('''<div class ="123">伟大的中国人</div>''')  #在类属性名为123的div标签后加此div标签
print(pq)
pq("div.aaa").append('''<div class ="123">伟大的中国人</div>''')  #在类属性名为123的div标签内加此div标签

pq("div.aaa").attr("class","BBB") # 修改类的属性为“BBB”

pq("div.aaa").attr("id","BBB") # 如果类名为aaa的div标签没有id属性,则新增属性

pq("div.aaa").remove_attr("class") # 删除属性

pq("div.aaa").remove() # 删除类名为aaa的标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值