【问题标题】:Scrapy - no list page, but I know the url for each item pageScrapy - 没有列表页面,但我知道每个项目页面的 url
【发布时间】:2011-05-16 19:40:20
【问题描述】:

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

该网站没有包含所有项目的列表页面,所以我想以某种方式很好地抓取这些网址(从1100)。这家伙here 似乎也有同样的问题,但想不通。

有人有解决办法吗?

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

    您可以在 Spider 类的 start_urls 属性中列出所有已知的 URL:

    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):
            # ...
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-15
        • 1970-01-01
        • 2018-09-22
        • 2016-10-18
        • 2022-01-11
        • 2013-06-21
        • 2014-02-15
        相关资源
        最近更新 更多