セレニウムをダイナミックページスクレイピングのためにスクラップと統合する
スクラピーを使用してダイナミックウェブページからデータをスクレイプしようとすると、標準的なクローリングプロセスは短くなる可能性があります。これは、URLを変更しない「次の」ボタンをクリックするなど、ページネーションが非同期負荷に依存している場合にしばしば当てはまります。この課題を克服するために、セレンをスクラピークモに組み込むことは効果的な解決策になります。ただし、いくつかの一般的なアプローチには次のものがあります。 Spider's Parse()メソッドへの応答を渡す前にページネーションを実行します。これにより、セレンロジックをより柔軟に制御できます。次のスニペットは、セレニウムをスクラピーと統合する方法を示しています:
インポートスクラピー Selenium Import WebDriverから クラスProductspider(scrapy.spider): name = "product_spider" applaid_domains = ['ebay.com'] start_urls = ['https://www.ebay.com/sch/i.html?_odkw=books&_osacat = 0&_trksid=p2045573.m570.l1313.tr0.trc0.xpython&_nkw = pthon&amf;_sacat = 0 " def __init __(self): self.driver = webdriver.firefox() def parse(self、response): self.driver.get(respons.url) 本当です: next = self.driver.find_element_by_xpath( '// td [@class = "pagn-next"]/a') 試す: next.click() #ここでデータを取得して処理します を除外する: 壊す self.driver.close()
代替:Scrapyjs Middleware
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3