BeautifulSoup4/ Pyquery解析库/线程

BeautifulSoup4

1.什么是BeautifulSoup4?

和 lxml 一样,Beautiful Soup 也是python的一个HTML/XML的解析器,用它可以方便的从网页中提取数据。

2.bs4在解析时依赖解析器?

解析器						使用方法														优势	
Python标准库			BeautifulSoup(markup,'html.parser')			Python的内置标准库、执行速度适中、文档容错能力强
lxml HTML解析器	BeautifulSoup(markup,'lxml')						速度快、文档容错能力强

3.使用
1)初始化
soup = BeautifulSoup(html文本,‘lxml’)
(2)findall()方法

name参数:可以根据节点名查询
attrs参数:可以根据节点属性查询
text参数:用来匹配节点文本

(3)CSS选择器
(4)获取属性
(列如获取标签属性)a.attrs[‘id’]或者啊a[‘id’]
(5)获取文本
a.get_text()或者a.string

Pyquery解析库

1.介绍

pyquery库是jQuery的python实现,能够以jQuery的语法来解析HTML文档,易用性和解析速度都挺好

2.安装

pip3 install pyquery

3.使用
(1)初始化
(1-1)传入html字符串
pq_html = pq("")
(1-2)pq_html = pq(filename = path_to_html_file)

(2).find():查找嵌套元素
(3).filter(selector):根据class,id筛选指定元素
(4).eq(index):根据索引号获取指定元素(index从0开始)
(5)pq_html(selector):通过css选择器来获取目标内容
(6).text()获取标签的文本
(7).attr('属性值’):获取标签属性

线程

1.使用模块

import threading

2.threading.Thread()

(1)target:线程要执行的目标函数
(2)name:线程名称
(3)args:传参数(元组)
(4)kwargs:传参数(字典)

3.start()方法 开启线程
4.join()方法 线程阻塞
5.daemon= False(后台线程,主线程结束不影响子线程运行)
6.daemon= True(前台线程,主线程结束子线程)
7.线程执行是无顺序的
8.线程资源是共享的

(1)保护资源,threading.Lock()添加了线程锁之后,保证同一时刻只能有一个线程在使用或修改资源
(2)注意避免死锁情况的发生

线程池

concurrent.futures import ThreadPoolExecutor
创建一个线程池
pool = ThreadPoolExecutor(max_workers=8)
往线程池中提交任务
fn(要执行的任务),*args(要传递的参数) Kwargs(要传递的参数)
result= pool.submit(cr)awlPageDate,url,name="1808"
给线程添加后调方法(add_done_callback添加的是方法名)
result.add_done_callback(done)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值