Scrapy:使用特定规则跟踪URL
我是新来的,在任何地方都找不到我需要做的事情 我需要抓取一组非常相似的URL,但我无法从一个URL访问另一个URL。例如,我需要删除以下URL:Scrapy:使用特定规则跟踪URL,url,sitemap,scrapy,rule,web-crawler,Url,Sitemap,Scrapy,Rule,Web Crawler,我是新来的,在任何地方都找不到我需要做的事情 我需要抓取一组非常相似的URL,但我无法从一个URL访问另一个URL。例如,我需要删除以下URL: www.example.com/1.html www.example.com/2.html (...) www.example.com/1000.html 但在第一页上没有链接到其他页面(即独立页面) 我该怎么做? (对不起我的英语) 大概是这样的: class MySpider(BaseSpider): name = 'example.com
www.example.com/1.html
www.example.com/2.html
(...)
www.example.com/1000.html
但在第一页上没有链接到其他页面(即独立页面)
我该怎么做?
(对不起我的英语)
大概是这样的:
class MySpider(BaseSpider):
name = 'example.com'
allowed_domains = ['example.com']
Start_urls = [
'http://www.example.com/1.html',
'http://www.example.com/2.html',
'http://www.example.com/3.html',
]
但超过3个不同的页面
谢谢 如果页面都是这种形式(www.example.com/x.html),那么您可以这样做:
class MySpider(BaseSpider):
name = 'example.com'
allowed_domains = ['example.com']
Start_urls = [
'http://www.example.com/1.html',
'http://www.example.com/2.html',
'http://www.example.com/3.html',
]
起始URL=['http://www.example.com/%s.html“%page for page in xrange(1,1000)]您应该覆盖start\u请求,而不是start\u URL 例如:
def start_requests(self):
base_url = 'http://www.example.com/
for i in xrange(1, 10000):
url = base_url + str(i) + '.html'
yield Request(url, dont_filter=False, callback='parse_method')
此外,您可以从队列中提供URL列表:
def start_requests(self):
while True:
url = queue.get()
yield Request(url, dont_filter=False, callback='parse_method')
请注意,scrapy的调度程序可能会因并发调度大量URL而过载,因此请小心。非常好。请记住将此标记为已接受的答案,并在达到足够代表人数时进行投票:)