首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取PyQuery中的属性?

获取PyQuery中的属性?
EN

Stack Overflow用户
提问于 2012-12-28 21:21:30
回答 2查看 14.6K关注 0票数 21

我正在使用PyQuery,并希望打印一个链接列表,但是不知道如何从PyQuery语法中的每个链接获取href属性。

这是我的代码:

代码语言:javascript
复制
  e = pq(url=results_url)
  links = e('li.moredetails a')
  print len(links)
  for link in links:
    print link.attr('href')

这将打印10,然后显示以下错误:

代码语言:javascript
复制
AttributeError: 'HtmlElement' object has no attribute 'attr'

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-28 21:32:35

PyQuery包装了lxml,因此您可以使用ElementTree API来访问属性:

代码语言:javascript
复制
e = pq(url=results_url)
for link in e('li.moredetails a'):
    print link.attrib['href']

或者,要在找到的任何元素上使用DOM API,请将该元素包装在pq()调用中,这与您需要使用jQuery $()jQuery()包装DOM元素的方式相同:

代码语言:javascript
复制
    print pq(link).attr('href')

代码语言:javascript
复制
    print pq(link).attr['href']

以获取更具pythonic风格的访问属性的方法。

您还可以循环遍历返回PyQuery元素的.items()方法:

代码语言:javascript
复制
e = pq(url=results_url)
for link in e('li.moredetails a').items():
    print link.attr['href']
票数 31
EN

Stack Overflow用户

发布于 2012-12-28 21:27:19

与在jQuery中一样,将该链接包装起来:

代码语言:javascript
复制
e = pq(url=results_url)
links = e('li.moredetails a')
print len(links)
for link in links:
    print pq(link).attr('href')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14070197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档