python之pyQuery使用总结

什么是pyQuery

    当我们使用爬虫抓取网页后,还需要对抓取的HTML内容进行处理以获得需要的信息.pyQuery是jQuery的python实现,可以用来解析HTML内容.

安装

 我的环境:Ubuntu 14.04+python2.7
    命令:pip install pyquery

使用

 加载HTML内容

    from pyquery import pyQuery as pq
    可以从字符串,文件或URL加载HTML内容
from pyquery import PyQuery as pq

doc_1 = pq("

Hello

") doc_2 = pq(filename="file_path") doc_3 = pq(url="http://www.baidu.com")

 根据HTML标签来获得元素

from pyquery import PyQuery as pq

doc_1 = pq("

Hello

") print doc_1('head') #

Hello

print doc_1('h1') #

Hello

 获取HTML块或文本块

 使用html()和text()
from pyquery import PyQuery as pq

doc_1 = pq("

Hello

") print doc_1('head').html() #

Hello

print doc_1('head').text() # Hello

 从索引获取元素

 eq(index)
from pyquery import PyQuery as pq

doc_1 = pq("

test1

test2

") print doc_1('p').eq(0).html() # test1 print doc_1('p').eq(1).html() # test2

    根据类名和id获取元素

from pyquery import PyQuery as pq

doc_1 = pq("

test1

") print doc_1('.div1').html() #

test1

print doc_1('#2').html() # test1

 获取属性值

from pyquery import PyQuery as pq

doc_1 = pq("")
print doc_1('div').attr('class')  # div1
print doc_1('a').attr('href')   # http://abc.com

 修改属性值

from pyquery import PyQuery as pq

doc_1 = pq("")
print doc_1('a').attr('href', 'http://www.google.com')   # 将href属性修改为google的地址

    查找嵌套元素find()

from pyquery import PyQuery as pq

doc_1 = pq("
test1") print doc_1('div').find('a') # test1

 获取子元素

from pyquery import PyQuery as pq

doc_1 = pq("

test1

test2
") print doc_1('div').children() #

test1

test2 print doc_1('div').children('a') # test2

    获取父元素

from pyquery import PyQuery as pq

doc_1 = pq("

test1

test2
") print doc_1('a').parents() # 所有的HTML内容 print doc_1('a').parents('div') #

test1

test2

 为元素添加类

from pyquery import PyQuery as pq

doc_1 = pq("

test1

test2
") print doc_1('div').addClass('div1') #

test1

test2

 判断元素是否有给定的类

from pyquery import PyQuery as pq

doc_1 = pq("

test1

test2
") print doc_1('div').hasClass('div1') # False print doc_1('div').addClass('div1') #

test1

test2
print doc_1('div').hasClass('div1') # False

你可能感兴趣的:(python)