scrapyの勉強の為、ぼけての特定URLの画像をスクレイピングしようと考えました。
その際に下記2点が対応できず、解決策をご教授いただければと存じます。
1:次のページに遷移しようとした際にログ上で、許可されていないドメインとして出力されます。
再帰的に次のページへ遷移させたいのですが、このログで停止します。
robots.textでもクローラー回避にはなっていないのですが、原因が分かりません。。
DEBUG: Filtered offsite request to 'bokete.jp': <GET https://bokete.jp/boke/popular?page=2>
2:次のページを取得する際にrole="button"をしていして取得したいのですが、roleの取得方法が
不明な為、ご教授いただければと存じます。
<a href="https://bokete.jp/boke/popular?page=2" class="btn btn-primary" role="button"> <span class="glyphicon glyphicon-chevron-right"></span> </a>
作成したソース
import scrapy from test2.items import ImageItem class Test2Spider(scrapy.Spider): name = "test2" allowed_domains= "https://bokete.jp/" start_urls = [ 'https://bokete.jp/boke/popular' ] custom_settings = { "DOWNLOAD_DELAY": 1, } def parse(self, response): item = ImageItem() item["image_urls"] = [] for test in response.css('div.boke-photo-content'): item["image_urls"].append(response.urljoin(test.css('img::attr(src)').extract_first())) next_page = response.xpath('//*[@id="content"]/div[14]/a[8]').css('a::attr(href)').extract_first() print("次のページへ遷移") print(next_page) if next_page is not None: next_page = response.urljoin(next_page) yield scrapy.Request(next_page, callback=self.parse)
ログ
2018-04-07 13:00:48 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://bokete.jp/robots.txt> (referer: None) 2018-04-07 13:00:49 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://bokete.jp/boke/popular> (referer: None) 次のページへ遷移 https://bokete.jp/boke/popular?page=2 2018-04-07 13:00:49 [scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to 'bokete.jp': <GET https://bokete.jp/boke/popular?page=2> 2018-04-07 13:00:49 [scrapy.core.engine] INFO: Closing spider (finished)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 12:30