python - Scrapy模擬登陸遇到404問題
問題描述
用python模擬登陸一個網站,一直遇到404問題,求指導!
代碼
-- coding: utf-8 --import scrapyfrom scrapy.http import Request, FormRequestfrom scrapy.selector import Selector
class StackSpiderSpider(scrapy.Spider):
name = 'stack_spider'start_urls = [’https://stackoverflow.com/’]headers = { 'host': 'cdn.sstatic.net', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'en-US,en;q=0.5', 'Connection': 'keep-alive', 'Content-Type':' application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0' }#重寫了爬蟲類的方法, 實現了自定義請求, 運行成功后會調用callback回調函數def start_requests(self) : return [Request('https://stackoverflow.com/users/login', meta = { # ’dont_redirect’: True, # ’handle_httpstatus_list’: [302], ’cookiejar’ : 1}, callback = self.post_login)] #添加了meta#FormRequesetdef post_login(self, response) : # 請求網頁后返回網頁中的_xsrf字段的文字, 用于成功提交表單 fkey = Selector(response).xpath(’//input[@name='fkey']/@value’).extract()[0] ssrc = Selector(response).xpath(’//input[@name='ssrc']/@value’).extract()[0] print fkey print ssrc #FormRequeset.from_response是Scrapy提供的一個函數, 用于post表單 #登陸成功后, 會調用after_login回調函數 return [FormRequest.from_response(response, meta = {# ’dont_redirect’: True,# ’handle_httpstatus_list’: [302],’cookiejar’ : response.meta[’cookiejar’]}, #注意這里cookie的獲取headers = self.headers,formdata = {'fkey':fkey,'ssrc':ssrc,'email':'[email protected]','password':'12345','oauth_version':'','oauth_server':'','openid_username':'','openid_identifier':''},callback = self.after_login,dont_filter = True)]def after_login(self, response) : filename = '1.html' with open(filename,’wb’) as fp:fp.write(response.body) # print response.body
調試信息2017-04-18 11:19:23 [scrapy.utils.log] INFO: Scrapy 1.3.3 started (bot: text5)2017-04-18 11:19:23 [scrapy.utils.log] INFO: Overridden settings: {’NEWSPIDER_MODULE’: ’text5.spiders’, ’SPIDER_MODULES’: [’text5.spiders’], ’BOT_NAME’: ’text5’}2017-04-18 11:19:23 [scrapy.middleware] INFO: Enabled extensions:[’scrapy.extensions.logstats.LogStats’, ’scrapy.extensions.telnet.TelnetConsole’, ’scrapy.extensions.corestats.CoreStats’]2017-04-18 11:19:24 [scrapy.middleware] INFO: Enabled downloader middlewares:[’scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware’, ’scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware’, ’scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware’, ’scrapy.downloadermiddlewares.useragent.UserAgentMiddleware’, ’scrapy.downloadermiddlewares.retry.RetryMiddleware’, ’scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware’, ’scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware’, ’scrapy.downloadermiddlewares.redirect.RedirectMiddleware’, ’scrapy.downloadermiddlewares.cookies.CookiesMiddleware’, ’scrapy.downloadermiddlewares.stats.DownloaderStats’]2017-04-18 11:19:24 [scrapy.middleware] INFO: Enabled spider middlewares:[’scrapy.spidermiddlewares.httperror.HttpErrorMiddleware’, ’scrapy.spidermiddlewares.offsite.OffsiteMiddleware’, ’scrapy.spidermiddlewares.referer.RefererMiddleware’, ’scrapy.spidermiddlewares.urllength.UrlLengthMiddleware’, ’scrapy.spidermiddlewares.depth.DepthMiddleware’]2017-04-18 11:19:24 [scrapy.middleware] INFO: Enabled item pipelines:[]2017-04-18 11:19:24 [scrapy.core.engine] INFO: Spider opened2017-04-18 11:19:24 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)2017-04-18 11:19:24 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:60232017-04-18 11:19:24 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://stackoverflow.com/users/login> (referer: None)1145f3f2e28e56c298bc28a1a735254b
2017-04-18 11:19:25 [scrapy.core.engine] DEBUG: Crawled (404) <GET https://stackoverflow.com/search?q=&ssrc=&openid_username=&oauth_server=&oauth_version=&fkey=1145f3f2e28e56c298bc28a1a735254b&password=wanglihong1993&email=1067863906%40qq.com&openid_identifier=> (referer: https://stackoverflow.com/use...2017-04-18 11:19:25 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <404 https://stackoverflow.com/sea...auth_version=&fkey=1145f3f2e28e56c298bc28a1a735254b&password=wanglihong1993&email=1067863906%40qq.com&openid_identifier=>: HTTP status code is not handled or not allowed2017-04-18 11:19:25 [scrapy.core.engine] INFO: Closing spider (finished)2017-04-18 11:19:25 [scrapy.statscollectors] INFO: Dumping Scrapy stats:{’downloader/request_bytes’: 881, ’downloader/request_count’: 2, ’downloader/request_method_count/GET’: 2, ’downloader/response_bytes’: 12631, ’downloader/response_count’: 2, ’downloader/response_status_count/200’: 1, ’downloader/response_status_count/404’: 1, ’finish_reason’: ’finished’, ’finish_time’: datetime.datetime(2017, 4, 18, 3, 19, 25, 143000), ’log_count/DEBUG’: 3, ’log_count/INFO’: 8, ’request_depth_max’: 1, ’response_received_count’: 2, ’scheduler/dequeued’: 2, ’scheduler/dequeued/memory’: 2, ’scheduler/enqueued’: 2, ’scheduler/enqueued/memory’: 2, ’start_time’: datetime.datetime(2017, 4, 18, 3, 19, 24, 146000)}2017-04-18 11:19:25 [scrapy.core.engine] INFO: Spider closed (finished)
問題解答
回答1:老弟,你的密碼泄漏了
相關文章:
1. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)2. 微信小程序可以用gulp,webpack嗎?3. python - 為什么正常輸出中文沒有亂碼,zip函數之后出現中文編程unicode編碼的問題,我是遍歷輸出的啊。4. mysql服務無法啟動1067錯誤,誰知道正確的解決方法?5. ueditor上傳服務器提示后端配置項沒有正常加載,求助!!!!!6. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)7. tp5 不同控制器中的變量調用問題8. 這段代碼既不提示錯誤也看不到結果,請老師明示錯在哪里,謝謝!9. php7.3.4中怎么開啟pdo驅動10. 老師 我是一個沒有學過php語言的準畢業生 我希望您能幫我一下
