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

最新文章

  1. Linux远程复制命令SCP
  2. javascript Date format(js日期格式化) (转)
  3. javascript基础之打印乘法表
  4. win8 鼠标失灵解决办法
  5. java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
  6. [原]基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息
  7. mac 修改系统配置参数 主机名 等
  8. 【转】javascript Object使用Array的方法
  9. c# 读取app.config遇到生成X.config.config问题
  10. Lua编写wireshark插件初探——解析Websocket上的MQTT协议
  11. Docker的可视化管理工具对比
  12. JMeter-生成性能测试结果报告
  13. 学习PYTHON之路, DAY 9 - Socket网络编程
  14. maven 工程依赖了某个jar包 但还是报java.lang.ClassNotFoundException的问题
  15. FFmpeg数据结构AVFrame
  16. Jenkins与SVN持续集成
  17. 自然语言交流系统 phxnet团队 创新实训 项目博客 (一)
  18. 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
  19. GDAL读取影像并插值
  20. Opencv Laplace算子

热门文章

  1. scikit-learn:CountVectorizer提取tf都做了什么
  2. 2.2 Go语言基础之位运算操作
  3. 如何使用git send-email发送补丁?
  4. apache整合tomcat中的一些注意事项
  5. 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop
  6. 使用Selenium时解决方案: Exception: Failed to find firefox binary. You can set it by specifying the &#183;&#183;&#183;&#183;&#183;&#183;
  7. SQL Server 中 ROWLOCK 行级锁
  8. 又做了个新的Blog
  9. 前端CSS实现图片自适应背景大小
  10. python手撸桌面计算器