pyquery模块 和fake_useragent
一、我们在使用爬虫时,通常需要加入请求头,一般都是手动在网页开发者工具众找到user-agent的值,由此导入一个新的库:fake_useragent
有两种写法 :1、
from fake_useragent import UserAgent
headers={
"User-Agent": UserAgent().random
}
2、指定浏览器:
headers = {"user-agent": ua.chrome} # 指定浏览器 user-agent
二、pyquery模块(比较常用的用法)
通过url初始化有二种方法:1、doc=pq("https://www.baidu.com/") 直接将url丢给pquery
2、reps=requests.get(url="https://www.baidu.com/",headers=headers)推荐使用第二种,一般网站都需要加入请求头
访问节点元素
doc('#id的值')根据id的值来定位
doc('.class')根据class的值来定位’
doc('p')根据标签来定位
在doc('p')。eq(0)定位到索引的值
使用attr()方法访问节点的属性:from pyquery import PyQuery as pq li = pq('<li id="test1" class="test1"></li><li id="test2" class="test2"></li>')('li') print(li.attr("id"))
结果是:test1
PyQuery提供text()和html()方法获取节点的文本属性值
示例:doc('.div_tag #ul_tag li') 上述代码是通过.div_tag获取class为div_tag的节点,然后通过#ul_tag获取id为ul_tag的节点,最后返回所有的li节点
find(“li”)是把所有li节点及子节点都查找出来