私が訪れたページからhtmlを保存するscrapy Webクローラーを作成しています。私はまた、自分のファイル拡張子でクロールしたファイルを保存したい。 Scrapyダウンロード可能なファイルを保存する
この
は私が持っているもので、これまで スパイダークラスclass MySpider(CrawlSpider):
name = 'my name'
start_urls = ['my url']
allowed_domains = ['my domain']
rules = (Rule (LinkExtractor(allow=()), callback="parse_item", follow= True),
)
def parse_item(self,response):
item = MyItem()
item['url'] = response.url
item['html'] = response.body
return item
pipelines.py
save_path = 'My path'
if not os.path.exists(save_path):
os.makedirs(save_path)
class HtmlFilePipeline(object):
def process_item(self, item, spider):
page = item['url'].split('/')[-1]
filename = '%s.html' % page
with open(os.path.join(save_path, filename), 'wb') as f:
f.write(item['html'])
self.UploadtoS3(filename)
def UploadtoS3(self, filename):
...
リンクは、ファイルの拡張子で終わるかどうかを検出するための簡単な方法がありますそのファイル拡張子に保存しますか?私が現在持っているものは、拡張子にかかわらず.htmlに保存されます。
は私が
filename = '%s.html' % page
を削除することもできますし、それが自身の延長だとして保存するだろうと思うが、私が代わりにhtmlとして保存したい場合は、そこにあるように、それは、ASPXで終わるかのよう
をやってしまいました '?'探す? – Bhetzie
URLにGETリクエストパラメータがあるかどうかを確認して削除します。例: 'http://google.com/page.html?render = true' – Akustik