python pyQuery用法

前言:pyQuery强大又灵活的网页解析库。如果你觉得正则写起来太麻烦,如果你觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法,那么pyQuery就是你的绝佳选择。

·导入方法from pyquery import PyQuery as pq(这里由于PyQuery书写繁琐,就用pq代替)

doc = pq(‘url’)

print(doc('li'))这里跟css选择器的用法相同,但是不需要加select,根据标签查找就是直接输入标签名,根据class查找就是在class属性名前加一个·,如doc(.class名),如果class名是由几个单词加空格组成,则用点(.)代替空格(切记不可另加空格class="ab cc",用的时候就是(.ab.cc));根据id查找就是在id的id名前加一个#,如doc(#id名),几种方法可以同时使用,在后面用空格隔开即可。

·url初始化

doc=pq(url='url名')

doc('head')请求url链接的头信息

·文件初始化

doc=pq(filename='文件名.html')(首先你在python文件的同目录下要有一个对应的html文 件,或者指定html文件的路径)

doc('li')

查找元素(例子中的lis等都是我自己定义的变量)

子元素:例:item('.class名') lis=iten.children()查找子元素

父元素:例:item('.class名') lis=iten.parent()查找父元素。注parents()返回所有的祖先节点,包括父节点,从大到小依次输出。parents()还可以加入参数,css选择器。

兄弟元素:item.siblings()输出所有的兄弟元素,siblings()也可加参数。同父元素查找类似。

遍历:如果查找的元素只有一个,直接输出即可,如果有多个,就要用到items()方法了,然后再通过for循环输出即可。例如:lis=doc('li').items()。

获取信息

·获取属性:两种方法,但是都要用到sttr,分别举例为:lis.attr('href(name,class,id等都可以)')和lis.attr.href(name,class,id等都可以)

·获取文本:要用到text()方法,不管标签中有多少属性,只要能匹配到该标签,然后输出,返回的就只有文本内容。例:我们匹配到的是a标签<a id='aid' class='text' name='iphone' >mypython</a>,其中输出的就是mypython。

获取html

·就是使用html()方法,它包括了该标签的子标签从开始到结束的所有html代码

DOM操作(节点操作)

·删除添加class,用到removeClass()和addClass(),(注:精准匹配),用法:假设lis匹配到的class为<....class='item-0 active'...></...>,lis.removeClass('active'),输出lis后就成了<....class='item-0'...></...>,addClass()方法与之相同,是在class后面加上你所给的参数,如果lis中没有class这个属性,那么他就会自动生成一个class,并把你的参数放进去。

css和attr

attr用法:attr('属性','属性名'),有该属性的话就把该属性的属性名替换掉,没有的话就会生成该属性和属性名。

css('类型','尺寸'),如果标签中的style中有该类型,则该类型的类型尺寸会被替换,如果没有将会生成改类型和尺寸,如果连style都没有,将会生成style,类型,尺寸。

remove

用法和find()一起使用,例:lis.find('p').remove()移除lis中html代码的p标签。

猜你喜欢

转载自blog.csdn.net/qq_41983562/article/details/84179374