画像は、ページのソースに存在するのJavaScriptから抽出することができるように思えます。私はjs2xmlライブラリを使用して、JavaScriptのソースコードをXMLに変換しました(あなたはScrapinghubのblogpostについて詳しく知ることができます)。 XMLを使用してSelector
を作成し、通常の方法でデータを抽出することができます。あなたはそれをテストしたい場合は
# -*- coding: utf-8 -*-
import js2xml
import scrapy
class ExampleSpider(scrapy.Spider):
name = 'example'
allowed_domains = ['amazon.com']
start_urls = ['https://www.amazon.com/dp/B01N068GIX?psc=1/']
def parse(self, response):
item = dict()
js = response.xpath("//script[contains(text(), 'register(\"ImageBlockATF\"')]/text()").extract_first()
xml = js2xml.parse(js)
selector = scrapy.Selector(root=xml)
item['image_urls'] = selector.xpath('//property[@name="colorImages"]//property[@name="hiRes"]/string/text()').extract()
yield item
、Amazonはユーザーエージェント文字列に基づいてScrapyをブロックするように見えるよう
scrapy runspider example.py -s USER_AGENT="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36"
のようにそれを実行します。この例のクモを見てみましょう。
ページにリンクを追加して、検索する要素を指定できますか? – CtheSky
私はページのリンクを追加しました。 – PiccolMan