Ich habe eine Anfrage funktioniert normal auf regulären Browsern aber nicht auf in scrapy Shell. Ein ganzer HTML-Block wird verschwinden, sobald ich "scrapy shell" oder "scrapy crawl" benutze. Ich bin nicht mit Sicherheit verboten.scrapy kein HTML-Element erkennen, aber es ist auf der Quellseite sichtbar
Hier unten ist das Thema auf der GitHub (mit Bildern), bevor ich in Richtung hier des untenstehenden Link (französisch Website Immobilien Auktion) mit einem normalen Browser wie mozilla Umleitung war:
https://github.com/scrapy/scrapy/issues/2109
Um es kurz zu machen, versuche ich eine Auktion Website zu kratzen. Und mit einem normalen Browser erscheinen alle Daten normal. Aber wenn ich mit dem scrapy Shell überprüft, ein ganzer HTML-Block fehlt vom response.body
scrapy shell http://www.licitor.com/ventes-judiciaires-immobilieres/tgi-fontainebleau/mercredi-15-juin-2016.html
Selbst wenn ich meinen User-Agenten ändern, indem Sie Folgendes eingeben:
scrapy shell -s USER_AGENT='Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1' 'http...the rest of url'
Ich habe versucht, das zu ändern User-Agent, wie mir gesagt wurde, ist ein potentielles Header-Problem oder ein Javascript-Problem.
Plus diese Fehlermeldung auf meinem Terminal sagt:
[1:1:0710/114628:ERROR:PlatformKeyboardEvent.cpp(117)] Not implemented reached in static PlatformEvent::Modifiers blink::PlatformKeyboardEvent::getCurrentModifierState()
nur für den Fall, ich DOWNLOAD_HANDLERS: {'s3': None}
in meinen Einstellungen, um hinzuzufügen hatte eine Fehlermeldung loszuwerden.
Ich bin auf Ubuntu 14 laufen und ich habe Anaconda mit Scrapy 1.03 installiert.
Wo vermisse ich den Punkt bitte Leute?
EDIT: die Header-Lösung zu überprüfen, ich copy-paste derselben Header von mozilla-Browser, der gut in meine scrapy Shell arbeitet. Hier ist mein Code:
from scrapy import Request
req = Request('MY_URL',
headers={
'Accept': 'text/html, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4',
'User-Agent':"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36",
})
fetch(req)
Die HTML-Daten fehlen noch.
Ist ein JavaScript möglich, um Scrapy zu verhindern?
EDIT:
ich auch scrapy-Splash mit seiner Docker Voraussetzung installiert.
Und dann habe ich versucht, dieses Problem zu beheben, indem Sie den Splash-Server verwenden.
NOCH DAS GLEICHE PROBLEM !!Hier ist mein Code:
$ scrapy shell
from scrapy import Request
from scrapy_splash import SplashRequest
url='http://www.licitor.com/ventes-judiciaires-immobilieres/tgi-paris/jeudi-7-juillet-2016.html'
req = SplashRequest(url, args={'wait': 0.5},
headers={
'Accept': 'text/html, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4',
'User-Agent':"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36",
})
fetch(req)
view(response)
Also zusammenfassend, das ist, was ich getan habe:
- Ich änderte meinen Header die gleiche meines Mozilla-Browser sein (das funktioniert)
- I installiert Splash und versuchte, es zu verwenden, um JavaScript zu behandeln