Scraperwiki scrape query: использование lxml для извлечения ссылок
Я подозреваю, что это тривиальный запрос, но надеюсь, что кто-то может помочь мне с запросом, который я получил, используя 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
2 ответа
Решение
Селекторы CSS могут выбирать элементы, имеющие атрибут href, например, с помощью. a[href]
но они не могут извлечь значение атрибута самостоятельно.
Когда у вас есть элемент из cssselect, вы можете использовать next_link.get('href')
чтобы получить значение атрибута.