Ric*_*ard 18 python screen-scraping pyquery
我正在使用PyQuery并希望打印链接列表,但无法弄清楚如何href从PyQuery语法中的每个链接获取属性.
这是我的代码:
e = pq(url=results_url)
links = e('li.moredetails a')
print len(links)
for link in links:
print link.attr('href')
Run Code Online (Sandbox Code Playgroud)
这打印10,然后给出以下错误:
AttributeError: 'HtmlElement' object has no attribute 'attr'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Mar*_*ers 28
PyQuery包装lxml,因此您使用ElementTree API来访问属性:
e = pq(url=results_url)
for link in e('li.moredetails a'):
print link.attrib['href']
Run Code Online (Sandbox Code Playgroud)
或者,要在任何找到的元素上使用PyQuery API,请在pq()调用中包装元素,回显您使用jQuery $()或jQuery()包装DOM元素的方式:
print pq(link).attr('href')
Run Code Online (Sandbox Code Playgroud)
要么
print pq(link).attr['href']
Run Code Online (Sandbox Code Playgroud)
以更加pythonic的方式来访问属性.
您也可以循环使用该.items()方法,而不是返回PyQuery元素:
e = pq(url=results_url)
for link in e('li.moredetails a').items():
print link.attr['href']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11842 次 |
| 最近记录: |