用scrapy迭代硒中的链接

时间:2014-04-14 14:32:36

标签: python list selenium scrapy

我正在学习用硒和scrapy刮痧。我有一个包含链接列表的页面。我想点击第一个链接,访问页面抓取项目并再次返回主页面(上一页链接列表)并单击第二个链接并抓取并重复此过程,直到所需的链接结束。 我所能做的就是点击第一个链接,然后我的抓取工具停止。 如何再次抓取第二个链接和其余链接?

我的蜘蛛看起来如此:

class test(InitSpider):
    name="test"
    start_urls = ["http://www.somepage.com"]

    def __init__(self):
        InitSpider.__init__(self)
        self.browser = webdriver.Firefox()

    def parse(self,response):
        self.browser.get(response.url)
        time.sleep(2)
        items=[]
        sel = Selector(text=self.browser.page_source)
        links = self.browser.find_elements_by_xpath('//ol[@class="listing"]/li/h4/a')
        for link in links:
            link.click()
            time.sleep(10)
            #do some crawling and go back and repeat the process.
            self.browser.back()

由于

1 个答案:

答案 0 :(得分:1)

您可以采取其他方法:为循环中的每个browser.get()链接调用href

links = self.browser.find_elements_by_xpath('//ol[@class="listing"]/li/h4/a')
for link in links:
    link = link.get_attribute('href')
    self.browser.get(link)
    # crawl

如果链接是相对的,则需要将其加入http://www.somepage.com