2017-06-28 5 views
0

私はクロールしたくないです。どのようにクロールしないでください前に、データをクロールフレームワークで同じにする場合

この問題を解決するために、クロールが行われたときに、DBに日時を入力し、その日時以降にLast-Modified応答HTTPが更新されていない場合はクロールしないと思います。

私の質問は次の2つです。

  1. はどのようにして、より良いアイデアはありますか?この方法を考えるのですか?
  2. ScrapフレームワークでLast-ModifiedレスポンスHTTPコントロールを参照できるコードがある場合は教えてください。

私の質問をお読みいただきありがとうございます。

+0

使用'Last-Modified'は良い考えです。応答ヘッダーは 'response.headers'で得ることができます。 – stamaimer

答えて

0

ないすべてのウェブサイトのリターンLast-Modifiedヘッダ、あなたの特定のであれば、あなたのDBの情報とヘッダとの一致を確認した後、データをクロールするGET要求を持っている最初のHEAD要求を持つ試すことができない:

def parse(self, response): 
    urls = [] # some urls 
    for url in urls: 
     yield Request(url, method='HEAD', self.check) 

def check(self, response): 
    date = response.headers['Last-Modified'] 
    #check date to your db 
    if db_date > date: # or whatever is your case 
     yield Request(response.url, self.success) 

def success(self, response): 
    yield item 
+0

あなたの助言に感謝します。 – user3395249

関連する問題