Wenn Sie die hrefs vom li mit der Klasse evt Sie auf möchten, können Sie die folgende XPath verwenden:
xpath('//li[@class="evt-click"]/@href'))
In Ihrem eigenen Beispiel benötigen Sie:
xpath("./@href")
Der Grund, warum keiner arbeitet, ist, weil das, was Sie suchen, nicht in der HTML in der Verbindung existiert, die Sie zur Verfügung gestellt haben, dort sind 11 li class="evt-click"
und keine enthalten irgendwelche href bar die js in der einen tag:

Sie scrapy-splash Seite erlauben können vollständig zu machen, die dynamisch generierten Daten zu erhalten, können Sie es per Link zu installieren Anleitung:
In setting.py:
DOWNLOADER_MIDDLEWARES = {
'scrapyjs.SplashMiddleware': 725,
}
Start docker Beispiel:
docker run -p 8050:8050 scrapinghub/splash:
Dann ist dies genug, um die gewünschten Daten zu erhalten:
import scrapy
class MySpider(scrapy.Spider):
name = "deez"
start_urls = ["http://www.deezer.com/profile/154723101"]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, self.parse, meta={
'splash': {
'endpoint': 'render.html',
'args': {'wait': 1}
}
})
def parse(self, response):
print(response.xpath("//li[@class='evt-click']").extract())
Ausgang:
$ scrapy crawl deez
.............................
2016-03-20 23:01:12 [scrapy] DEBUG: Crawled (200) <POST http://127.0.0.1:8050/render.html> (referer: None)
[u'/profile/154723101/loved', u'/profile/154723101/playlists', u'/profile/154723101/albums', u'/profile/154723101/artists', u'/profile/154723101/radios', u'/profile/154723101/following', u'/profile/154723101/followers']
selenium ist auch eine weitere Option.
Ich versuchte es auch, aber es gab nichts zurück. Ich habe auch versucht, xpath ('// @ href'), aber ich habe nur die javascript: void (0) Texte ohne etwas anderes. – baptiste
Können Sie den Link teilen? –
Dies ist der Link: http://www.deezer.com/profile/154723101 – baptiste