Scrapy - 没有列表页面,但我知道每个项目页面的URL

时间:2011-05-16 19:40:20

标签: python scrapy

我正在使用Scrapy来搜索网站。我要抓取的项目页面如下:http://www.somepage.com/itempage/&page=xx是从1100的任何数字。因此,我有一个SgmlLinkExractor规则,其中包含为类似于此的任何页面指定的回调函数。

该网站没有包含所有项目的列表页面,所以我想以某种方式很好地扫描这些网址(从1100)。这个人here似乎有同样的问题,但无法弄明白。

有没有人有解决方案?

2 个答案:

答案 0 :(得分:6)

您可以在Spider班级start_urls属性中列出所有已知网址:

class SomepageSpider(BaseSpider):
    name = 'somepage.com'
    allowed_domains = ['somepage.com']
    start_urls = ['http://www.somepage.com/itempage/&page=%s' % page for page in xrange(1, 101)]

    def parse(self, response):
        # ...

答案 1 :(得分:1)

如果只是一次性事情,您可以使用所有链接创建一个本地html文件file:///c:/somefile.html。开始抓取该文件并将somepage.com添加到允许的域。

或者,在parse函数中,您可以返回一个新的Request,它是下一个要删除的url。