use*_*236 8 python json web-crawler scrapy
我试图从站点中抓取数据.数据被构造为多个对象,每个对象都有一组数据.例如,姓名,年龄和职业的人.
我的问题是这些数据在网站的两个层面上分开.
例如,第一页是名称和年龄列表,其中包含每个人员个人资料页面的链接.
他们的个人资料页面列出了他们
我已经在python中使用scrapy编写了一个蜘蛛,它可以从顶层收集数据并爬过多个分页.
但是,如何从内页收集数据,同时保持链接到适当的对象?
目前,我的输出结构与json一样
{[name='name',age='age',occupation='occupation'],
[name='name',age='age',occupation='occupation']} etc
Run Code Online (Sandbox Code Playgroud)
解析功能可以跨越这样的页面吗?
这是你需要处理的方式.当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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2117 次 |
| 最近记录: |