Próbuję wydobyć informacje o produkcie ze strony internetowej za pomocą scrapy. Moja strona internetowa do pobrania wygląda następująco:
- zaczyna się od strony product_list z 10 produktami
- kliknięcie przycisku „dalej” ładuje następnych 10 produktów (adres URL nie zmienia się między dwiema stronami)
- Używam LinkExtractor, aby przejść do każdego linku do strony produktu i uzyskać wszystkie potrzebne informacje
Próbowałem zreplikować wywołanie next-button-ajax-call, ale nie mogę zacząć działać, więc próbuję selenu. Mogę uruchomić webdriver selenu w osobnym skrypcie, ale nie wiem jak zintegrować się z scrapy. Gdzie mam umieścić część selenu w moim pająku drapiącym?
Mój pająk jest dość standardowy, jak poniżej:
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
Każdy pomysł jest mile widziany. Dziękuję Ci!