Scraperwiki 抓取查询:使用 lxml 提取链接

问题描述 投票:0回答:2

我正在处理一个在我正在尝试构建的刮刀中使用 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
python-2.7 web-scraping lxml scraperwiki
2个回答
1
投票

CSS 选择器可以选择 具有 href 属性的元素,例如。

a[href]
但他们无法自行提取属性值。

从 cssselect 获得元素后,您可以使用

next_link.get('href')
来获取属性的值。


1
投票
link = link.attrib['href']

应该可以工作

© www.soinside.com 2019 - 2024. All rights reserved.