href
PyQuery を使用しており、リンクのリストを印刷したいのですが、 PyQuery 構文で各リンクから属性を取得する方法がわかりません。
これが私のコードです:
e = pq(url=results_url)
links = e('li.moredetails a')
print len(links)
for link in links:
print link.attr('href')
が出力され10
、次のエラーが発生します。
AttributeError: 'HtmlElement' object has no attribute 'attr'
何が間違っているのでしょうか?
ベストアンサー1
PyQueryラップlxml
、つまりエレメントツリーAPI属性にアクセスするには:
e = pq(url=results_url)
for link in e('li.moredetails a'):
print link.attrib['href']
あるいは、見つかった要素に対して PyQuery API を使用するには、呼び出しで要素をラップしpq()
、jQuery を使用する方法$()
やjQuery()
DOM 要素をラップする方法をエコーします。
print pq(link).attr('href')
または
print pq(link).attr['href']
属性にアクセスするためのより Python 的な方法。
.items()
代わりにメソッドをループして、PyQuery 要素を返すこともできます。
e = pq(url=results_url)
for link in e('li.moredetails a').items():
print link.attr['href']