9

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

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

我已经有一个用 python 写的爬虫,它可以从顶层收集数据并爬过多个分页。
但是,如何从内页收集数据,同时将其链接到适当的对象?

目前,我的输出结构为 json

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

解析功能可以跨页面吗?

4

1 回答 1

8

这是您需要处理的一种方式。当 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
于 2013-02-14T09:11:23.407 回答