Je dois définir l'URL de référateur, avant de gratter un site, le site utilise une authentification basée sur l'URL, de sorte que cela ne me permet pas de vous connecter si le référateur n'est pas valide. P>
Quelqu'un pourrait-il dire comment faire cela dans Scrapy? P>
4 Réponses :
Supprimer BasesPider.Start_requests < / Code>
et créez-y votre personnalisé Demande en passant votre référence code> en-tête. P>
Si vous souhaitez modifier le référateur de la demande de votre araignée, vous pouvez modifier défaut_Request_headers CODE>
dans le fichier DEFAULT_REQUEST_HEADERS = {
'Referer': 'http://www.google.com'
}
Il suffit de définir une URL de référateur dans les en-têtes de la demande P>
class skérapie.http.request (URL [ méthode = 'get', corps, en-tête, ... code> p> p>
en-têtes (dict) - les en-têtes de cette demande. Les valeurs de dict peuvent être des chaînes (pour des en-têtes valorisées) ou des listes (pour des en-têtes à valeur multi-valeurs). Code> p> blockQuote>
Exemple: P>
demande de retour (URL = votre_url, Headers = {'Référeur': 'http: // votre_referer_url'}) code> p>
Vous devez faire exactement comme @warwaruk indiqué, ci-dessous est mon exemple d'élaboration pour une araignée de crawl: Ceci devrait générer des journaux suivants dans votre terminal: P> (...)
[myspider] DEBUG: Crawled (200) <GET http://example.com/foo> (referer: http://www.example.com/)
(...)
[myspider] DEBUG: Crawled (200) <GET http://example.com/bar> (referer: http://www.example.com/)
(...)
[myspider] DEBUG: Crawled (200) <GET http://example.com/baz> (referer: http://www.example.com/)
(...)