0

我怀疑这是一个微不足道的查询,但希望有人可以帮助我解决我在尝试构建的刮板中使用 lxml 的查询。

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

我正在逐行阅读教程 3,到目前为止,我一直在尝试提取下一页链接。我可以使用 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 回答