学习了BeautifulSoup再来看一看另一个神器,PyQuery。
Hello jQuery。咦,好像有什么不得了的东西混进来了。
学习前端的时候,刚学完javascript的基础后,老师介绍了一个叫jQuery的库,一用简直爽得不得了,尤其是对我这种不打算深入学习前端知识的同学。。而PyQuery是python仿照jQuery的严格实现,语法也几乎相同。记住,人生苦短。。
安装的过程 balabala的就不再说,直接上手使用 (눈_눈)
不过要先复习下jQuery。
$(selector).action()
好了,复习完了。Σ(っ°Д°;)っ
首先说一下PyQuery对象初始化的几个方式。
PS:导入PyQuery的时候一般会另命名为pq以方便使用。
from pyquery import PyQuery as pq
四个初始化方式。
1.直接传字符串。
dollar=pq(''<html>....</html>")
2.本地文件
dollar=pq(filename='index.html')
3.URL。
dollar=pq('http://www.baidu.com')
4.lxml.etree(不常用)
dollar(etree.fromstring('<html>sadaad')
当html代码不完整或者有疏漏的时候一般用lxml的etree处理成完整清晰的HTML代码。
处理完后dollar就相当于jQuery中的$符号。
返回HTML块或文本块
dollar('title').html() dollar('title').text()
注意,当获取的值不止一个时,html()和text()只返回首个元素块的内容。若想得到第二个标签内容,
则可以用eq(index)方法,加上指定索引值。
查找标签
dollar('p')#返回所有p标签 dollar('.myclass')#返回类属性为myclass的标签 dollar('#box')#返回ID值为box的标签 dollar('head>title')#子选择器
等等
是不是和jQuery的操作一模一样?
如果需要获取标签的属性值,需要用到attr()这个方法
dollar('a').attr('href')#返回所有a标签的href属性值
PyQuery还有很多其他方法,而我们抓取信息时用不上,所以不再叙述,感兴趣的同学可以去看官方文档。