pyquery浅尝

import requests
url='http://h.4399.com/pc.htm'
content = requests.get(url).content
from pyquery import PyQuery as Q
doc = Q(content)
game = doc('.g_2')('b')('a').attr.href

//输出多个链接和名字
for link in doc('.g_2')('b')('a'):
    print link.attrib['href']
print doc('.g_2')('b')('a').text()
//你瞧,这里就不是直接.,而是先用Q括起来才.的,因为html()是pyquery才有的方法。
for name in doc('.g_2')('b')('a'):
    print Q(name).html()
    
//如果这里不加[0],就是一个数组,会报错说pyquery的对象没有attrib的属性。why
doc1('.pag_btn')('a')[0].attrib['href']
// 'PyQuery' object has no attribute 'attrib',so this is wrong below!!!Don't use Q this time!!!
for i in docs('script'):
    print Q(i).attrib['src']

成功爬取4399的HTML5首页的单个游戏地址。

>>> from pyquery import PyQuery as pq
>>> d = pq("<html></html>") #可以直接拼HTML
>>> d = pq(url='http://www.powereasy.net/') #也可以打开一个url
>>> d('title') #取title元素
[<title>]
>>> print d('title').text()
动易网络 - 领先的内容管理系统(CMS)、企业级电子商务平台(B2C)和站群管理系统(SiteGroup)提供商

>>> print d("#logo").html() #根据ID获取元素
<a href="http://www.powereasy.net" title="&#x52A8;&#x6613;&#x7F51;&#x7EDC;">官方主站</a>

>>> d('.s') #根据类名获取元素
[<li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>, <li.s>]

>>> a = d('#topNavIn li:eq(5)').find('a') #复杂点的选择器也是可以的,看来支持的不错
>>> a.attr('href') #属性操作
'http://sms.powereasy.net/'
>>> a.attr('href', 'http://qleelulu.cnblogs.com').attr('href') #修改属性值
'http://qleelulu.cnblogs.com'

>>> d('#LoginFrom').hasClass('Login_ajax') #css类操作
True
>>> d('#LoginFrom').addClass('lulu').attr('class') #css类操作
'lulu Login_ajax'
>>>


赋值id

p.attr["id"] = "ola"


你可能感兴趣的:(pyquery浅尝)