Ich arbeite daran, die Daten von Factiva in Python 3.5.2 zu bekommen. Und ich muss die Schulanmeldung verwenden, damit ich die Daten sehen kann.Wie Crawl Factiva Daten mit Python Scrapy?
ich diesen Beitrag verfolgt haben, um zu versuchen login spider
jedoch zu schaffen, ich habe diesen Fehler:
Dies ist mein Code:
# Test Login Spider
import scrapy
from scrapy.selector import HtmlXPathSelector
from scrapy.http import Request
login_url = "https://login.proxy.lib.sfu.ca/login?qurl=https%3a%2f%2fglobal.factiva.com%2fen%2fsess%2flogin.asp%3fXSID%3dS002sbj1svr2sVo5DEs5DEpOTAvNDAoODZyMHn0YqYvMq382rbRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQAA"
user_name = b"[my_user_name]"
pswd = b"[my_password]"
response_page = "https://global-factiva-com.proxy.lib.sfu.ca/hp/printsavews.aspx?pp=Save&hc=All"
class MySpider(scrapy.Spider):
name = 'myspider'
def start_requests(self):
return [scrapy.FormRequest(login_url,
formdata={'user': user_name, 'pass': pswd},
callback=self.logged_in)]
def logged_in(self, response):
# login failed
if "authentication failed" in response.body:
print ("Login failed")
# login succeeded
else:
print ('login succeeded')
# return Request(url=response_page,
# callback=self.parse_responsepage)
def parse_responsepage(self, response):
hxs = HtmlXPathSelector(response)
yum = hxs.select('//span/@enHeadline')
def main():
test_spider = MySpider(scrapy.Spider)
test_spider.start_requests()
if __name__ == "__main__":
main()
Um dies zu laufen Code, ich benutzte Terminal-Befehlszeile im obersten Verzeichnis des Projekts:
scrapy runspider [my_file_path]/auth_spider.py
Wissen Sie, wie Sie hier mit den Fehlern umgehen?
Oh mein Gott, es zeigt Login Erfolg. Ich dachte, ich könnte dieses Problem nie lösen .... Vielen Dank !! –