2017-08-31 24 views
2

これは私が掻きたいウェブページです: http://www.nalpdirectory.com/Page.cfm?PageID=34。 #customDisplayNumを#allに設定して#resultDisplayOptionsFormというフォームを送信することをシミュレートして、リストされたすべてのアイテムを含むWebページを表示します。私は応答を検査する場合治療はフォームを送信できません

def parse(self, response): 
    yield scrapy.FormRequest.from_response(
     response, 
     formid='resultDisplayOptionsForm', 
     formdata={'displayNum': '100000'}, #I tried 10, 20, 30 etc. none works 
     dont_click=True, 
     #clickdata={'id': 'customizeDisplaySubmitBtn'}, 
     callback=self.after_showAll 
    ) 
def after_showAll(self, response): 
    from scrapy.shell import inspect_response 
    inspect_response(response, self) 

が、それは常に失敗したページを示しています

これは私のコードスニペットです。どんな提案も大歓迎です。ありがとうございました!

+0

私は 'dont_click'引数を使用して誰かを確認する最初の時間:あなたはscrapyコードで、最後のサイトに第三の要求を実行するために不足している

、それはこのようになります。 – eLRuLL

+0

「失敗したページ」とはどういう意味ですか? – eLRuLL

答えて

0

ここでの問題は、データを取得するための実際のPOST要求が不足していることです。

あなたが密接にチェックすると、あなたが欲しい「レスポンス」はそうそこに何かが欠落していることを確認することができ、this siteにありながら、フォームのPOSTリクエストURLは、this siteにあります。

def parse(self, response): 
    yield FormRequest.from_response(
     response, 
     formid='resultDisplayOptionsForm', 
     formdata={'displayNum': '100000000'}, # I tried 10, 20, 30 etc. none works 
     dont_click=True, 
     # clickdata={'id': 'customizeDisplaySubmitBtn'}, 
     callback=self.after_showAll 
    ) 

def after_showAll(self, response): 
    yield FormRequest(
     url='http://www.nalpdirectory.com/Page.cfm?PageID=34', 
     formdata={ 
      'currPage': '1', 
      'checkedFormID': '', 
     }, 
     callback=self.parse_real, 
    ) 

def parse_real(self, response): 
    from scrapy.shell import inspect_response 
    inspect_response(response, self) 
+0

ありがとうeLRuLL !!!これはStackOverflowの私の最初の質問であり、完全に答えられました。感謝! –

関連する問題