2017-09-17 11 views
0

私はそのディレクトリから、大学の教授の連絡先情報を収集するためにscrapyを使用しようとしています。私は2つ以上のリンクを投稿できないので、すべてのリンクをfollowing pictureに入れます。暗号化されたURLからデータをクロールする方法は?

私は写真のように、ドロップダウンメニューから[等しい姓を設定します。それから私はすべての教授を姓で検索します。

通常、URLは、他の大学のウェブサイトからいくつかのパターンがあります。しかし、これについては、元のURLは(1)です。 (2)姓として「An」を検索すると(2)になります。 'An'は529385FD5FF90A198625819E002B8B41のようなものに置き換えられたようですか?よく分かりません。要求として送信する必要があるURLを取得する方法はありますか?つまり、今回は「An」を検索します。 Leeのような別の姓を検索するとそれは別の要求になります。彼らは不規則です。私はパターンを見つけることができません。

答えて

0

スクレーパーは、あなたがそれだと思うほど複雑ではありません。フォームからPOST呼び出しを行い、GET要求を返します。以下は

import scrapy 
from scrapy.utils.response import open_in_browser 

class univSpider(scrapy.Spider): 
    name = "univ" 
    start_urls = ["http://appl103.lsu.edu/dir003.nsf/(NoteID)/5903C096337C2AA28625819E0038E3E4?OpenDocument"] 

    def parse(self, response): 
     yield FormRequest.from_response(response, formname="_DIRVNAM", formdata={"LastName": "Lalwani"},callback = self.search_result) 

    def search_result(self, response): 
     open_in_browser(response) 
     print(response.body) 
+0

ありがとう働くだろう。私は2つの質問があります。 Q1:フォームデータはどこにありますか?私の友人はどこかのネットワークでそれを見つけることができると私に教えてくれました。しかし、私はこのウェブサイトでそれを見つけることができません。 Q2:open_in_browser(レスポンス)は、それがどのように動作するかを表示するためのものですか?クロールするときに実際にブラウザを開く必要はありませんか? – user8314628

+0

Q1、はいFirefoxをチェックインしてJSを無効にしただけで、IDが計算されていませんが、フォーム上に表示されます。 Q2:はい。それはちょうどあなたの応答を示すことであった、あなたは文句を言わないように –

+0

Q1としてそれを使用します。私は、Chromeを使用しますが、フォームを見つけることができません。たぶん私はfirefoxを試してください:) – user8314628

関連する問題