我正在处理一个在我正在尝试构建的刮刀中使用 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
CSS 选择器可以选择 具有 href 属性的元素,例如。
a[href]
但他们无法自行提取属性值。
从 cssselect 获得元素后,您可以使用
next_link.get('href')
来获取属性的值。
link = link.attrib['href']
应该可以工作