pyquery

pyquery

  • 安装
  • 使用
    • 类选择器
    • id选择器
    • 取属性值和文本
    • .html()和.text()属性
  • 更改Html

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 = '''
特色百科
'''
pq = PyQuery(html) pq("div.aaa").after('''
伟大的中国人
'''
) #在类属性名为123的div标签后加此div标签 print(pq) pq("div.aaa").append('''
伟大的中国人
'''
) #在类属性名为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的标签

你可能感兴趣的:(spider,爬虫,python,pyquery)