छवियों को JavaScript से निकाला जा सकता है कि पृष्ठ स्रोत में मौजूद है की तरह लगता है। मैंने जावास्क्रिप्ट स्रोत कोड को एक्सएमएल में परिवर्तित करने के लिए js2xml लाइब्रेरी का उपयोग किया (आप स्क्रैपिंगहब के blogpost पर इसके बारे में अधिक जान सकते हैं)। एक्सएमएल का उपयोग 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
, जैसे
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"
इसे चलाने अमेज़न उपयोगकर्ता एजेंट स्ट्रिंग के आधार पर Scrapy ब्लॉक करने के लिए लगता है के रूप में: इस उदाहरण मकड़ी पर एक नजर डालें।
स्रोत
2017-10-06 18:06:28
क्या आप पृष्ठ पर एक लिंक जोड़ सकते हैं और निर्दिष्ट कर सकते हैं कि आप कौन सा तत्व ढूंढना चाहते हैं? – CtheSky
मैंने पृष्ठ के लिए लिंक जोड़ा। – PiccolMan