【问题标题】:How to collect data from multiple pages into single data structure with scrapy如何使用scrapy将来自多个页面的数据收集到单个数据结构中
【发布时间】:2013-01-30 00:15:47
【问题描述】:

我正在尝试从站点中抓取数据。数据结构为多个对象,每个对象都有一组数据。 例如,有姓名、年龄和职业的人。

我的问题是,这些数据在网站中分为两个级别。
比如说,第一页是姓名和年龄列表,并带有指向每个人的个人资料页面的链接。
他们的个人资料页面列表他们的职业。

我已经有一个用 python 写的爬虫,它可以从顶层收集数据并爬取多个分页。
但是,我怎样才能从内页收集数据,同时保持它与适当的链接对象?

目前,我的输出结构为 json

   {[name='name',age='age',occupation='occupation'],
   [name='name',age='age',occupation='occupation']} etc

解析函数可以跨页面吗?

【问题讨论】:

    标签: python json scrapy web-crawler


    【解决方案1】:

    这是您需要处理的一种方式。当 item 具有所有属性时,您需要一次 yield/return item

    yield Request(page1,
                  callback=self.page1_data)
    
    def page1_data(self, response):
        hxs = HtmlXPathSelector(response)
        i = TestItem()
        i['name']='name'
        i['age']='age'
        url_profile_page = 'url to the profile page'
    
        yield Request(url_profile_page,
                      meta={'item':i},
        callback=self.profile_page)
    
    
    def profile_page(self,response):
        hxs = HtmlXPathSelector(response)
        old_item=response.request.meta['item']
        # parse other fileds
        # assign them to old_item
    
        yield old_item
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多