1

この Web ページをスクレイピングしたい: http://goo.gl/Eqfiuy

リストから日付として入力を提供したいのですが、スクレイピーはその値をフォームに提供し、「レポートの印刷」という応答を提供して結果ページにリダイレクトされます。次に、その中のデータを解析したいと思います。

私の質問は、html id に入力日付を与えるためにスクレイピーを作成する方法ですか?

私はスクレイピー0.16.5、ubuntu 12.04、firefox + firebug + firefinderを使用しています

例のコードを教えてください

4

2 に答える 2

1

alecxe のおかげで、これは動作するコードです:

from scrapy.spider import BaseSpider
from scrapy.http import FormRequest
from datetime import date
from dateutil.rrule import rrule, DAILY

 class MySpider(BaseSpider):
     name = "tnpwd"
     allowed_domains = ["http://164.100.167.12/"]
     start_urls = ["http://164.100.167.12/pwd/report.php"]

     def start_requests(self):
         start_date = date(2012, 06, 15)
         end_date = date(2012, 06, 20)
         for i in rrule(DAILY, dtstart= start_date, until=end_date):
             report_date = i.strftime('%d/%m/%Y')
             file_name = i.strftime('%d_%m_%Y')
             yield FormRequest(url='http://164.100.167.12/pwd/report.php',
                               method='POST',
                               callback=self.parse_page,
                               formdata={'reportdate': report_date},
                               meta = {'file_name': file_name})
     def parse_page(self, response):
        a= response.meta['file_name']
        print 'downloading %s' %a
        with open('/home/USERNAME/Documents/test/%s.pdf' %a, 'w') as f:
            f.write(response.body)
于 2013-08-02T10:51:51.683 に答える