我正在学习用硒和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()
由于
答案 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
。