yyyying的blog

好好学习 天天向上

0%

网络爬虫学习(3)

网络爬虫学习笔记

课程名称:52讲学爬虫

1.9 爬虫解析器PyQuery

相关链接
CSS选择器:https://www.w3school.com.cn/cssref/css_selectors.asp
PyQuery官方文档:heep://pyqery.readthedocs,io
安装
pip install pyquery
使用样例

1
2
3
4
5
#传入HTML string
html = '<div><li></li></div>'
from puquery import PyQuery as pq
doc = pq(html)
print(doc('li'))
1
2
3
4
#传入URL
from puquery import PyQuery as pq
doc = pq(url='https://www.baidu.com')
print(doc('title'))
1
2
3
4
#传入本地文件
from puquery import PyQuery as pq
doc = pq(filename='demo.html')
print(doc('title'))

基础CSS选择器

doc('#container .list li)
选取ID为container节点,再选取Class为list的节点,再选取li节点
for item in doc('#container .list li').item()
后面所有方法使用时如果需要筛选,将CSS选择器作为参数传入即可

查询子孙节点

find方法

1
2
items = doc('.list')
lis = items.find('li)

查询子节点

children方法
lis = item.childern('.active')

查询父节点

parent方法
lis = item.parent()

查询祖先节点

parents方法
lis = item.parents()

查询兄弟节点

siblings方法
lis = item.siblings()

获取节点属性

attr方法

1
2
3
a = doc('.active a')
a.attr('href')
# 或 a.attr.href

获取节点内容

text方法
a.text()
多个节点则返回所有对象的text,转化为用’ ‘隔开的字符串

获取节点HTML文本

html方法(包含html标签)
a.html()

节点操做

addClass & removeClass

动态改变节点Class属性
li.addClass('active')
li.removeClass('active')

attr方法操做属性

多参数将添加或改变节点属性
li.attr('name','link')

text & html操做内容

传入参数则改变对应值
li.text('change text')

remove删除节点

li.remove()

伪类选择器

参考CSS官方文档

1.10MongoDB

C++编写的非关系性数据库,存储内容类似JSON,字段值支持其他文档,数组,文档数组