在尝试使用scrapy从动态网页上刮擦数据时,将硒与动态页面刮擦的scrapy集成在一起,标准爬行过程可能很短。当分页依赖异步加载时,通常是这种情况,例如单击不修改URL的“下一个”按钮。为了克服这一挑战,将硒纳入您的废品蜘蛛可以是一个有效的解决方案。
在零食蜘蛛中的最佳位置取决于特定的刮擦要求。但是,几种常见的方法包括: 方法:
此方法涉及在蜘蛛的parse()方法中使用硒来处理每个页面的分页和数据提取的方法。在传递蜘蛛parse()方法的响应之前执行分页的中间件。另外,您可以在单独的脚本中执行Selenium命令,外部是零工蜘蛛的外部。这允许对Selenium逻辑进行更灵活的控制。
将硒与scrapy 一起使用,假设您想在eBay上划破聊天结果。以下片段演示了如何将硒与砂整合: start_urls = ['https://www.ebay.com/sch/i.html?_odkw=books&_osacat=0&_trksid=p2045573.m570.l1313.TR0.TRC0.Xpython&_nkw=python&_sacat=0&_from=R40'] def __init __(自我): self.driver = webdriver.firefox() DEF PARSE(自我,响应): self.driver.get(wendesp.url) 而真: next = self.driver.find_element_by_xpath('// td [@class =“ pagn-next”]/a') 尝试: next.click() #在此处获取数据 除了: 休息 self.driver.close()
在某些情况下,使用Scrapyjs Middleware可能足以处理网页的动态部分,而无需Selenium。此中间件允许您在零工框架中执行自定义JavaScript。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3