我想把所有有这种语法的页面都翻出来
mywebsite/?page=INTEGER
我试过了:
^{pr2}$但似乎链接仍然MyWebsite
。那么,我该怎么做才能让它明白我想添加/?page=NumberOfPage
?拜托?在
我的意思是我想把这几页废掉:
mywebsite/?page=1
mywebsite/?page=2
mywebsite/?page=3
mywebsite/?page=4
mywebsite/?page=5
..
..
..
mywebsite/?page=7677654
start_urls = [
'http://example.com/?page=%s' % page for page in xrange(1,100000)
]
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('my xpath')
for site in sites:
DateDifference= site.xpath('xpath for date difference').extract()[0]
if DateDifference.days < 8:
yield Request(Link, meta={'date': Date}, callback = self.crawl)
我想得到所有的数据页面,已经添加在过去7天。我不知道在过去的7天里增加了多少页。所以我认为我可以在大量的页面上爬行,比方说100000,然后我检查datedifference
如果少于7天,我想yield
如果不想停止爬行。在
在这种情况下,
CrawlSpider
使用规则将没有帮助。规则用于从第一页中提取与您的模式匹配的链接。显然,你的起始url页面没有指向所有这些页面的链接,这就是为什么你没有得到它们。在这样的方法应该有效:
如果我做对了,你要抓取所有小于7天的页面。 一种方法是按顺序跟随每一页(假设第1页是最年轻的,第2页比第1页老,第3页比第2页老……)。在
你可以做些像
其思想是按顺序执行
parse
。如果这是您第一次进入函数,response.meta['index']
没有定义:索引是1。如果这是一个在我们已经解析了另一个页面之后的调用,response.meta['index']
被定义:索引表示当前被刮取的页面的编号。在相关问题 更多 >
编程相关推荐