2017-11-12 3 views
0

私は、scrapyを使用してサイトにログインしようとしています。私はサンプルサイトを見てチェックしました。それはそのサイトのために働いています。それから私は別の場所をとり、チェックした。動いていない。私はちょうどURLを変更し、コードを実行しました。しかし、働いていない。何が問題でしょうか?Scrapyを使用してログインしていない

# -*- 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) 

これは問題なく動作しています。他のものはそうではありません。

# -*- 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") 

これは機能しません。応答はブラウザで開かれていません。これを解決する方法をいくつか教えてください。

+0

誰か助けてください。 –

答えて

1

私は問題があなたのallowed_domains = ['http://collegekart.in/login']にあると思います。それをallowed_domains = ['collegekart.in']に変更してみてください。もう1つの応答がおそらくフィルタリングされています。

+0

その作業。 Thanq so much –

+0

私が 'collegekart.in'に変更した場合、そのページにリダイレクトされますが、 'collegekart.in/users'にリダイレクトする必要があります。 'collegekart.in'は有効なリンクではありません。これを修正する方法はありますか? –

+0

問題が解決しました。私たちは応答のURLを置き換える必要があります。 –

関連する問題