2017-11-12 7 views
0

Ich versuche, mit Scrapy auf der Website anmelden. Ich nahm eine Beispielseite und überprüfte. Es funktioniert für diese Seite. Dann nahm ich eine andere Seite und überprüfte. Es funktioniert nicht. Ich habe nur die URLs geändert und den Code ausgeführt. Aber nicht funktioniert. Was wäre das Problem?Melden Sie sich mit Scrapy nicht funktioniert

# -*- coding: utf-8 -*- 
import scrapy 
from scrapy.http import FormRequest 
from scrapy.utils.response import open_in_browser 

class QuoteSpider(scrapy.Spider): 
    name = 'Quote' 
    allowed_domains = ["quotes.toscrape.com"] 
    start_urls = (
     'http://quotes.toscrape.com/login', 
    ) 

    def parse(self, response): 
     token=response.xpath('//input[@name="csrf_token"]/@value').extract_first() 

     return FormRequest.from_response(response,formdata={'csrf_token':token,'password':'foo','username':'foo'},callback=self.scape_home_page) 

    def scape_home_page(self, response): 
     open_in_browser(response) 

Das funktioniert gut. Der andere ist nicht.

# -*- coding: utf-8 -*- 
import scrapy 
from scrapy.http import FormRequest 
from scrapy.utils.response import open_in_browser 

class BucketsSpider(scrapy.Spider): 
    name = 'buckets' 
    allowed_domains = ['http://collegekart.in/login'] 
    start_urls = ['http://collegekart.in/login/'] 

    def parse(self, response): 
     token=response.xpath('//meta[@name="csrf-token"]/@content').extract_first() 
     print(token) 
     return FormRequest.from_response(response,formdata={'csrf-token':token,'password':'*********','username':'**************'},callback=self.scape_home_page) 

    def scape_home_page(self, response): 
     open_in_browser(response) 
     print("yes") 

Dies funktioniert nicht. Die Antwort wird im Browser nicht geöffnet. Bitte schlagen Sie mir einige Möglichkeiten vor, dies zu lösen.

+0

Bitte jemand mir dabei helfen. –

Antwort

1

Ich denke, das Problem ist mit Ihrem allowed_domains = ['http://collegekart.in/login'] Bitte versuchen Sie es zu ändern allowed_domains = ['collegekart.in'] die andere Antwort wird wahrscheinlich gefiltert.

+0

Es funktioniert. Thanq so viel –

+0

Wenn ich das zu "collecekart.in" ändere, wird es zu dieser Seite umleiten, aber es muss zu "collecekart.in/users" umleiten. 'collecekart.in' ist kein gültiger Link. Gibt es eine Möglichkeit, dies zu ändern? –

+0

Problem gelöst. Wir müssen die URL als Antwort ersetzen. –

Verwandte Themen