45
我試圖從網頁上刮取產品信息,使用scrapy。我要被刮的網頁看起來是這樣的:硒與scrapy動態頁面
- 開始與所屬類別頁面有10個產品
- 「下一步」按鈕載入點擊下一個10個產品(URL不會在兩個頁面之間切換)
- 我使用LinkExtractor關注各產品鏈接到產品頁面,並獲得所有的信息,我需要
我試圖複製下一個按鈕Ajax的電話,但無法得到工作,所以我給硒試一試。我可以在單獨的腳本中運行selenium的webdriver,但我不知道如何與scrapy集成。我應該在哪裏將硒元素放入我的scrapy蜘蛛?
我的蜘蛛是非常標準的,像下面這樣:
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
任何想法表示讚賞。謝謝!
感謝您的幫助。其實我最大的問題是在next.click()之後的部分。每次我收到一個新頁面,但是我仍然可以使用LinkExtractor提取所有產品網址,然後使用回調來解析它們? –
有沒有辦法重新使用已被scrapy抓取的響應,而不是使用'self.driver.get(response.url)'? – Ethereal
@ Z.Lin是你描述的問題還存在嗎?如果你已經解決了問題,你可以分享解決方案嗎?謝謝。另外,如果它有幫助,請考慮接受答案。 – alecxe