2017-04-24 1 views
0

Um scrapy zu lernen, ich alle Elemente dieser Website bin kriechen: http://quotes.toscrape.com/randomWie benutze ich den CSS-Selektor, um URLs mit Pythons Scrapy zu extrahieren?

Allerdings verstehe ich nicht, wie der Autor url bio kriechen. Ich versuchte, den CSS-Selektor zu verwenden:

>>> response.css('a::attr(href)').extract() 
['/', '/login', '/author/Ralph-Waldo-Emerson', '/tag/life/page/1/', '/tag/regrets/page/1/', 'https://www.goodreads.com/quotes', 'https://scrapinghub.com'] 

Dann:

>>> response.css('small.quote>span>a::attr(href)').extract() 

Trotzdem, ich bin nicht der Autor der Bio-URL zu bekommen. Also, wie kann ich die oben genannte URL mit dem CSS-Selektor bekommen ?.

UPDATE

Ich weiß schon, dass ich tun kann:

response.css('a::attr(href)').extract()[2] 

Aber ich denke, das ist nicht robust ist. Irgendeine Idee, wie man die Bioverbindung erhält?.

Antwort

0

Dies könnte funktionieren:

>>> os.path.dirname(response.url) 
'http://quotes.toscrape.com' 

>> response.css('a::attr(href)').extract()[2] 
u'/author/Bob-Marley' 

>>> os.path.dirname(response.url) + response.css('a::attr(href)').extract()[2] 
u'http://quotes.toscrape.com/author/Bob-Marley' 
Verwandte Themen