pyquery 库的使用
2024-09-05 08:53:26
from pyquery import PyQuery as pq # 文件勿命名为 pyquery.py,会发生冲突 # 字符串初始化 html = ''' <div id="page"> <div id="car_test"> <ul class="menu-list"> <li class="icon1"><a href="link1.html">科目一</a></li> <li class="icon2"><a href="link2.html">科目二</a></li> <li class="icon3 subject"><a href="link3.html">科目三</a></li> <li class="icon4"><a href="link4.html">科目四</a></li> <li class="buy car"><a href="link4.html">买车</a></li> </ul> </div> </div> ''' doc = pq(html) print(doc('li')) # url初始化 doc = pq(url='https://www.jiakaobaodian.com/') print(doc('title')) # 文件初始化 doc = pq(filename='demo.html') print(doc('li')) # 基本 CSS 选择器 doc = pq(html) print(doc('#car_test .menu-list li')) print(type(doc('#car_test .menu-list li'))) # 当需要用 class 且名称内容有空格时,”.“表示并列 print(doc('.menu-list .icon3.subject, .buy.car')) # 查找节点 doc = pq(html) items = doc('.menu-list') print(type(items)) print(items) # find() 查找节点里的所有子孙节点 link_list = items.find('a') print(type(link_list)) print(link_list) print('\n') # children() 查找节点里的子节点 menu_list = items.children() print(menu_list) last_li = items.children('.buy.car') print(last_li) # parent() 父节点 car_test = items.parent() print(type(car_test)) print(car_test) # parents() 祖先节点,此处输出 class 为 page 和 car_test 的两个节点 parents = items.parents() print(parents) # siblings() 兄弟节点 li = doc('.menu-list .icon3.subject') print(li.siblings()) # 遍历 doc = pq(html) menu_list = doc('li').items() print(type(menu_list)) for li in menu_list: print(li, type(li)) # 获取信息 doc = pq(html) a = doc('.icon3.subject a') b = doc('.icon4') # 获取属性,此处为 class_ print(a.attr.href) print(b.attr.class_) # 获取文本,html() 返回节点内所有代码 print(type(a.text())) print(a.text()) print(b.text()) print(b.html())
参考资料:静觅 » [Python3网络爬虫开发实战] 4.3-使用pyquery
最新文章
- Linux远程复制命令SCP
- javascript Date format(js日期格式化) (转)
- javascript基础之打印乘法表
- win8 鼠标失灵解决办法
- java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
- [原]基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息
- mac 修改系统配置参数 主机名 等
- 【转】javascript Object使用Array的方法
- c# 读取app.config遇到生成X.config.config问题
- Lua编写wireshark插件初探——解析Websocket上的MQTT协议
- Docker的可视化管理工具对比
- JMeter-生成性能测试结果报告
- 学习PYTHON之路, DAY 9 - Socket网络编程
- maven 工程依赖了某个jar包 但还是报java.lang.ClassNotFoundException的问题
- FFmpeg数据结构AVFrame
- Jenkins与SVN持续集成
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (一)
- 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
- GDAL读取影像并插值
- Opencv Laplace算子
热门文章
- scikit-learn:CountVectorizer提取tf都做了什么
- 2.2 Go语言基础之位运算操作
- 如何使用git send-email发送补丁?
- apache整合tomcat中的一些注意事项
- 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop
- 使用Selenium时解决方案: Exception: Failed to find firefox binary. You can set it by specifying the &#183;&#183;&#183;&#183;&#183;&#183;
- SQL Server 中 ROWLOCK 行级锁
- 又做了个新的Blog
- 前端CSS实现图片自适应背景大小
- python手撸桌面计算器