Scrapy不在请求url之后

Scrapy不在请求url之后,url,request,scrapy,Url,Request,Scrapy,下面是代码。基本上,我是在抓取电影信息。来自IMDB.com。但不知何故,请求并没有废弃对象“addr”中的url。我放在parse_item2中的“print”根本不显示 这让我发疯。我花了好几个小时。有经验的人能帮忙吗?非常感谢你 # code for the spider from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import

下面是代码。基本上,我是在抓取电影信息。来自IMDB.com。但不知何故,请求并没有废弃对象“addr”中的url。我放在parse_item2中的“print”根本不显示

这让我发疯。我花了好几个小时。有经验的人能帮忙吗?非常感谢你

 # code for the spider

    from scrapy.contrib.spiders import CrawlSpider, Rule
    from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
    from scrapy.selector import Selector
    from scrapy.http import Request, Response
    from beta.items import BetaItem
    import urllib2

    class AlphaSpider(CrawlSpider):

    name = 'alpha'
    allowed_domains = ['amazon.com','imdb.com']
    start_urls = ['http://www.imdb.com/search/title?at=0&sort=boxoffice_gross_us&title_type=feature&year=2005,2005']
    rules = (Rule(SgmlLinkExtractor(restrict_xpaths=('//td/a',), allow=('/title/')), callback='parse_item1'),
    )

    def parse_item1(self, response):
        sel = Selector(response)
        item = BetaItem()

        idb = sel.xpath('//link[@rel="canonical"]/@href').extract()
        idb = idb[0].split('/')[-2]
        item['idb'] = idb

        title = sel.xpath('//h1[@class="header"]/span[@class="itemprop"]/text()').extract()
        item['title'] = title

        addr = 'http://www.imdb.com/title/' + idb + '/business'
        request = Request(addr, callback=self.parse_item2)
        request.meta['item'] = item
        return request

    def parse_item2(self, response):
        print 'I am here'
        item = response.meta['item']
        sel = Selector(response)
        # BLA BLA BLA
        return item

问题的原因确实正如Blender在上面的评论中所说。为某个特定请求抓取内容需要相当长的时间。

解析项目1有效吗?
addr
指向的页面是否存在?嗨,Blender,是的,可以对“idb”和“title”进行爬网。可能需要一段时间才能到达提取的链接,因为Scrapy的爬网队列是LIFO。你能在一个特定的页面上测试它吗?我试过了,但它仍然不符合要求。对有效的URL有什么特殊要求吗?在本例中,url是utf-8字符串:“http://www.imdb.com/title/tt0360717/”。(增加空格)