Parsing scrapy plus selenium用于处理动态多页--无法继续单击

Parsing scrapy plus selenium用于处理动态多页--无法继续单击,parsing,selenium,click,scrapy,multipage,Parsing,Selenium,Click,Scrapy,Multipage,我正在使用Scrapy plus selenium从动态页面中复制数据。以下是我的爬行器代码: class asbaiduSpider(CrawlSpider): name = 'apps_v3' start_urls = ["http://as.baidu.com/a/software?f=software_1012_1"] rules = (Rule(SgmlLinkExtractor(allow=("cid=(50[0-9]|510)&am

我正在使用Scrapy plus selenium从动态页面中复制数据。以下是我的爬行器代码:

class asbaiduSpider(CrawlSpider):
        name = 'apps_v3'
        start_urls = ["http://as.baidu.com/a/software?f=software_1012_1"]

        rules = (Rule(SgmlLinkExtractor(allow=("cid=(50[0-9]|510)&s=1&f=software_1012_1", )), callback='parse_item',follow=True),) 

        def __init__(self):
                CrawlSpider.__init__(self)
                chromedriver = "/usr/bin/chromedriver"
                os.environ["webdriver.chrome.driver"] = chromedriver
                self.driver = webdriver.Chrome(chromedriver)

        def __del__(self):
                self.driver.stop()
                CrawlSpider.__del__(self)

        def parse_item(self,response):
                hxs = Selector(response)
                #links= hxs.xpath('//span[@class="tit"]/text()').extract()
                links= hxs.xpath('//a[@class="hover-link"]/@href').extract()
                for link in links:
                        #print 'link:\t%s'%link
                        time.sleep(2)
                        return Request(link,callback=self.parse_page)

        def parse_page(self,response):
                self.driver.get(response.url)
                time.sleep(2.5)

                app_comments = ''
                num = len(self.driver.find_elements_by_xpath("//section[@class='s-index-page devidepage']/a"))
                print 'num:\t%s'%num
                if num == 8:
                        print 'num====8 ohohoh'
                        while True:
                                link = self.driver.find_element_by_link_text('下一页')
                                try:
                                        link.click()
                                except:
                                        break
问题是,每次单击page2后,它都会退出当前页面。但我需要抓取第3页、第4页等等。 需要解析的页面如下所示: 这是中文的,很抱歉给您带来不便 我需要翻开最下面的几页,刮去评论数据。 这个问题我已经解决了两天了。我真的很感谢你的帮助。
谢谢你…

如果我理解正确,这是你的情况

翻开一页 从页面中找到一些链接并逐一访问 访问每个链接时提取数据。 如果我的理解是正确的。我想你可以继续下面的逻辑

打开页面 获取所有链接并将其保存到数组中。 现在使用webdriver分别打开每个页面并完成您的工作。
如果答案对您有帮助,请选择正确答案。这是一种感谢他人在这里帮助你的方式:事实上,我需要这样:1打开一个页面2找到一些链接让我们说从页面中找到链接2并访问它们3而从链接2访问每个页面,找到一些链接莱特说链接3并跟随它们4而从链接3访问页面,我需要在url保持不变的情况下单击一些按钮,并刮取一些数据。@当我尝试直接刮取最后一页时,它运行良好。经过两层跳转后,在抓取最终页面时,单击第二个按钮后无法继续。我想parse_page func可能有错误。但是我不知道如何更正。@talisa-对于您的问题,只需编写一个逻辑并使用适当的java集合来存储URL,这样您就可以返回到任何页面。现在对你来说,一切都是关于逻辑的。关于函数parse_页面,如果可能,请尝试通过xpath或样式或CSSSelector或name获取元素(如果可能),而不是self.driver.find_element_by_link_text-中文中的link text。但这只是一个想法,其他一切看起来都很好。否则就调试你的代码。@A很遗憾,我不熟悉java。有没有办法用python解决这个问题?