Scrapyを使用して特定のWebサイトからすべての外部リンクを取得したいと考えています。次のコードを使用すると、スパイダーは外部リンクもクロールします。Scrapyは、内部URLに従うだけですが、見つかったすべてのリンクを抽出します
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from myproject.items import someItem
class someSpider(CrawlSpider):
name = 'crawltest'
allowed_domains = ['someurl.com']
start_urls = ['http://www.someurl.com/']
rules = (Rule (LinkExtractor(), callback="parse_obj", follow=True),
)
def parse_obj(self,response):
item = someItem()
item['url'] = response.url
return item
何が欠けていますか? 「allowed_domains」は外部リンクがクロールされないようにしますか? LinkExtractorに "allow_domains"を設定すると、外部リンクが抽出されません。私は内部のリンクをクロールするのではなく、外部リンクを抽出することを忘れました。どのようなヘルプappriciated!
)私の問題を解決しました。少なくとも、「フィルタリングされたオフサイト要求を「www.externaldomain」に見ることができます。確かに私はここで何か些細なことを忘れていますか? – sboss
:理解してください:特定のウェブサイトのすべての外部リンクのリストを持っていますか? – aberna
はい – sboss