0

これは些細なクエリだと思いますが、構築しようとしているスクレーパーで lxml を使用して取得したクエリで誰かが私を助けてくれることを願っています。

https://scraperwiki.com/scrapers/thisisscraper/

私はチュートリアル 3 を 1 行ずつ進めており、次のページへのリンクを抽出しようとしています。cssselect を使用してリンクを識別することはできますが、アンカー タグ全体ではなく、href 属性だけを分離する方法がわかりません。

誰でも助けることができますか?

def scrape_and_look_for_next_link(url):
    html = scraperwiki.scrape(url)
    print html
    root = lxml.html.fromstring(html) #turn the HTML into lxml object
    scrape_page(root)
    next_link = root.cssselect('ol.pagination li a')[-1]

    attribute = lxml.html.tostring(next_link)
    attribute = lxml.html.fromstring(attribute)

    #works up until this point
    attribute = attribute.xpath('/@href')
    attribute = lxml.etree.tostring(attribute)
    print attribute
4

2 に答える 2

1

CSS セレクターは、href 属性を持つ要素を選択できます。a[href]ただし、属性値を自分で抽出することはできません。

cssselect から要素next_link.get('href')を取得したら、属性の値を取得するために使用できます。

于 2012-07-28T08:44:48.247 に答える
1
link = link.attrib['href']

動作するはずです

于 2012-08-22T17:30:07.987 に答える