45
私は、スクラピーを使用してウェブページから製品情報をスクラップしようとしています。私に-掻き取りするWebページは次のようになります。product_listページでセレンと動的ページの治療
- 開始を10の製品
- 「次へ」ボタン負荷をクリックして次の10の製品(URLは2本のページの間で変更されません。私は次のボタン-AJAX呼び出しを複製しようとしましたが、そう、働いて得ることができません製品ページに各製品のリンクをたどる、と私は
を必要とするすべての情報を取得するために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
任意のアイデアが高く評価されています。ありがとうございました!
感謝。実際、私の最大の問題はnext.click()の後の部分です。たびに新しいページが表示されますが、LinkExtractorを使用して商品のURLをすべて抽出し、コールバックを使用して解析することはできますか? –
'self.driver.get(response.url)'を使わずに、既にscrapyで取得したレスポンスを再利用する方法はありますか? – Ethereal
@ Z.Linはまだ説明した問題ですか?あなたがそれを解決したら、解決策を分かち合うことができますか?ありがとう。それが助けられたら、答えを受け入れることを検討してください。 – alecxe