怀化市鹤城区建设局网站,盐城网站开发代理,js网站模板,福建建筑人才市场前言Python关于爬虫的库挺多的#xff0c;也各有所长。了解前端的也都知道#xff0c; jQuery 能够通过选择器精确定位 DOM 树中的目标并进行操作#xff0c;所以我想如果能用 jQuery 去爬网页那就 cool 了。就搜了下看 Python 有没有与 DOM 相关的库什么的#xff0c;还真…前言Python关于爬虫的库挺多的也各有所长。了解前端的也都知道 jQuery 能够通过选择器精确定位 DOM 树中的目标并进行操作所以我想如果能用 jQuery 去爬网页那就 cool 了。就搜了下看 Python 有没有与 DOM 相关的库什么的还真找到了—— PyQuery PyQuery简介pyquery相当于jQuery的python实现可以用于解析HTML网页等。它的语法与jQuery几乎完全相同对于使用过jQuery的人来说很熟悉也很好上手。引用作者的原话就是“The API is as much as possible the similar to jquery.” 。安装使用 pip 或者 easy_install 都可以。注意由于 pyquery 依赖于 lxml 要先安装 lxml 否则会提示失败。安装pyqueryeasy_install pyquery 或者pip install pyquery验证输入 import pyquery 回车不报错即安装成功初始化有 4 种方法可以进行初始化可以通过传入 字符串、lxml、文件 或者 url 来使用PyQuery。from pyquery import PyQuery as pqfrom lxml import etreed pq()#传入字符串d pq(etree.fromstring())#传入lxmld pq(urlhttp://google.com/) #传入urld pq(filenamepath_to_html_file) #传入文件现在d 就像 jQuery 中的 $ 一样了。示例通过一个简单的例子快速熟悉 pyquery 的用法传入文件 example.html内容如下first section111117-01-28 22:51second section222217-01-28 22:53python 程序# -*- coding: utf-8 -*-from pyquery import PyQuery as pq#引入 PyQuerydoc pq(filenameexample.html)# 传入文件 example.htmlprint doc.html() # html()方法获取当前选中的 html 块print doc(.item-1) # 相当于 class 选择器选取 class 为 item-1 的 html 块data doc(tr) # 选取 元素for tr in data.items():# 遍历 data 中的 元素temp tr(td).eq(2).text() # 选取第3个 元素中的文本块print temp运行结果# print doc.html()first section111117-01-28 22:51second section222217-01-28 22:53# print doc(.item-1)second section222217-01-28 22:53# print tr(td).eq(2).text()17-01-28 22:51# print tr(td).eq(2).text()17-01-28 22:53操作1、.html() 和.text()获取相应的 HTML 块或者文本内容ppq(Hello World!)print p(head).html()# 获取相应的 HTML 块print p(head).text()# 获取相应的文本内容输出helloHello World!2、.(selector)通过选择器来获取目标内容d pq(test 1test 2)print d(div).html()# 获取 元素内的 HTML 块print d(#item-0).text()# 获取 id 为 item-0 的元素内的文本内容print d(.item-1).text()# 获取 class 为 item-1 的元素的文本内容输出test 1test 2test 1test 23、.eq(index)根据索引号获取指定元素(index 从 0 开始)d pq(test 1test 2)print d(p).eq(1).text()# 获取第二个 p 元素的文本内容输出test 24、.find()查找嵌套元素d pq(test 1test 2)print d(div).find(p) # 查找 内的 p 元素print d(div).find(p).eq(0) # 查找 内的 p 元素输出第一个 p 元素输出test 1test 2test 15、.filter()根据 class、id 筛选指定元素d pq(test 1test 2)print d(p).filter(.item-1) # 查找 class 为 item-1 的 p 元素print d(p).filter(#item-0) # 查找 id 为 item-0 的 p 元素输出test 2test 16、.attr()获取、修改属性值d pq(test 1test 2)print d(p).attr(id) # 获取 标签的属性 idprint d(a).attr(class,new)# 修改 标签的 class 属性为 new输出item-0test 27、其他操作.addClass(value)添加 class.hasClass(name)判断是否包含指定的 class返回 True 或 False.children()获取子元素.parents()获取父元素.next()获取下一个元素.nextAll()获取后面全部元素块.not_(selector)获取所有不匹配该选择器的元素for i in d.items(li): print i.text()遍历 d 中的 li 元素结语以上的操作对于日常爬取一些小数据资料基本足够使用了。当然PyQuery 还有很多其他内容这里就不做说明了如果需要了解更多关于 PyQuery 的内容的可以去查看官方文档。官方文档是英文的但也比较容易阅读和理解。我找到了一个中文的教程网站这里也提供出来。