21

PyQueryを使用していて、リンクのリストを出力したいのですがhref、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'

私は何が間違っているのですか?

4

2 に答える 2

31

PyQueryはラップlxmlするため、ElementTreeAPIを使用して属性にアクセスします。

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']
于 2012-12-28T13:32:35.223 に答える
2

jQueryの場合と同様に、そのリンクをまとめます。

e = pq(url=results_url)
links = e('li.moredetails a')
print len(links)
for link in links:
    print pq(link).attr('href')
于 2012-12-28T13:27:19.080 に答える