मैं एक वेबपेज से उत्पाद जानकारी को स्क्रैप करने के लिए उपयोग करने की कोशिश कर रहा हूं। इस तरह दिखता है मेरा-टू-स्क्रेप्ड वेबपेज:
- 10 उत्पादों के साथ एक product_list पृष्ठ से शुरू होता है
- "अगला" बटन पर क्लिक करने से अगले 10 उत्पाद लोड हो जाते हैं (दो पृष्ठों के बीच यूआरएल नहीं बदलता है)
- मैं उत्पाद पृष्ठ में प्रत्येक उत्पाद लिंक का पालन करने के लिए LinkExtractor का उपयोग करता हूं, और मुझे आवश्यक सभी जानकारी मिलती है
मैंने अगले बटन-अजाक्स-कॉल को दोहराने की कोशिश की, लेकिन काम नहीं कर पाया, इसलिए मैं सेलेनियम दे रहा हूं। मैं सेलेनियम के वेबड्राइवर को एक अलग स्क्रिप्ट में चला सकता हूं, लेकिन मुझे नहीं पता कि कैसे स्क्रैपी के साथ एकीकृत किया जाए। मैं अपने छींटे मकड़ी में सेलेनियम का हिस्सा कहाँ रखूँगा?
मेरा मकड़ी बहुत मानक है, निम्न की तरह:
class ProductSpider(CrawlSpider):
name = "product_spider"
allowed_domains = ['example.com']
start_urls = ['http://example.com/shanghai']
rules = [
Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="productList"]//dl[@class="t2"]//dt'), callback='parse_product'),
]
def parse_product(self, response):
self.log("parsing product %s" %response.url, level=INFO)
hxs = HtmlXPathSelector(response)
# actual data follows
किसी भी विचार की सराहना की है। धन्यवाद!