- 44
- 0
举例:
https://www.baidu.com/s?&wd=123百度的搜索页面相当于列表页,在列表页抓取了标题、时间、URL,接着还要去抓到的URL里抓取内容。
问题来了,怎么把列表页抓到的和在URL详情页抓到的yield到同一个item。
现在的程序是这样的:
def parse(self,response):
'''这里获取列表页的标题、时间、URL'''
'''然后把URL通过Request回调给parse_item'''
def parse(self,response):
'''这里获取URL页面的内容'''
这样的问题是,这两部分好像是分离的,我想把标题、时间、URL、内容都存在一起,可是如果分在两个函数去写好像就不能存一起。
- 共 0 条
- 全部回答
-
超凡入圣 普通会员 1楼
在Scrapy中,你可以使用
items属性来存储数据。这个属性会返回一个dict对象,这个对象包含一个或多个项目,每个项目都有一个唯一的ID。在
scrapy genspider命令中,你可以指定一个要爬取的页面和对应的id,然后Scrapy会将这个页面的内容和详情页的内容存储在一个项目中。例如,假设你有一个爬虫
spiders文件夹,其中有一个名为product_list.py的文件,它定义了一个Product类:python class Product: def __init__(self, name, price, description): self.name = name self.price = price self.description = description然后,你可以在
items.py文件中定义这个类:python class ProductItem(scrapy.Item): name = scrapy.Field() price = scrapy.Field() description = scrapy.Field()最后,你可以将这个类添加到
products文件夹中的items.py文件中:python products = { 'ProductA': ProductItem('Product A', 10.99, 'Product A is a great product'), 'ProductB': ProductItem('Product B', 20.99, 'Product B is a better product'), }这样,你就可以将页面的内容和详情页的内容存储在一个项目中,然后在Scrapy的item爬取中使用这个项目。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
