Spider抓取细节:内容处理的四个核心步骤!

内容处理即搜索引擎对Spider抓取回来的页面进行处理,处理步骤简单介绍如下。

步骤一:判断该页面的类型

首先要判断该页面的类型是普通网页,还是PDF、Word、 Excel 等特殊文件文档。如果是普通网页,还要判断该网页的类型是普通文本内容、视频内容,还是图片内容。甚至还会对网页是普通文章页还是论坛帖子进行判断,然后有针对性地进行内容处理。

步骤二:提取网页的文本信息

当下搜索引擎虽然在努力读取JavaScript、 Flash、 图片和视频,但是对于普通网页的索引还是以文本为主。此时还会提取页面的Title、Keywords、 Description 等标签中的内容,虽然一直有信息说 Keywords标签已经被主流大型搜索引擎抛弃了,但是经过多人实际测试,至少百度多多少少还是会参考Keywords标签的。

步骤三:去除页面噪声

如果该网页是普通网页,则搜索引擎会把与该网页内容无关的广告、导航、链接、图片、登入框、网站版权信息等内容全部剔除掉,只提取出该网页的主体内容。其实目前在这一步中, 百度并不会把主体内容之外的东西全部抛弃,相关推荐的内容在一定程度 上也会被算作本页的内容,或者是对本页主体内容的补充,也会在搜索排名中有直观的体现,甚至与页面不相干的链接文本也会被保留索引。

步骤四:去除内容中的停止词

接下来应该是对剩余文本内容的分词处理,然后搜索引擎会剔除掉如“得”“的”“啊”“地”“呀”“却”之类的停止词。其实此步骤是存在疑问的,对于普通文章来说,去除这些停止词会有利于搜索引擎对内容进行分词和理解,并且可以减少搜索引擎的计算量。但是在搜索引擎中单独搜索这些词也是有丰富的搜索结果的,如图2-9所示:当搜索包含这些词的关键词时,也会有比较丰富的搜索结果,不过会弱化这些停止词对搜索结果的影响,如图2-10所示。所以搜索引擎在对普通文章的处理中应该会有此步骤,但并不是机械严格去除的,也要看这些词在页面上的作用(搜索引擎在分词的时候也会进行词性识别,同一个词在不同位置词性可能不同)。此处对SEO人员的工作并没有太多影响,所以不必深究。

经过这些处理后,Spider 抓取回来的网页内容就被“洗”干净了,再经过分词处理及去重处理后,搜索引擎就会对已经被初步处理过且有索引价值的网页内容进行正向索引和倒排索引处理了。

更多精彩内容,请点击“原文查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Scrapy中,我们可以使用pipeline来处理多个spider数据。Pipeline是Scrapy中用来处理Item的组件,它提供了一种机制,可以方便地将Item传递给不同的处理器,以便进行后续处理。以下是如何处理多个spider数据步骤: 1. 创建Pipeline类 首先,我们需要创建一个Pipeline类来处理多个spider数据。在这个类中,我们可以定义一些处理器来处理不同的Item。例如,我们可以定义一个处理器来保存数据数据库,另一个处理器来保存数据到文件等等。 2. 在settings.py中启用Pipeline 在settings.py文件中,我们需要启用我们刚刚创建的Pipeline类。我们可以使用ITEM_PIPELINES设置来指定我们的Pipeline类。 3. 在Spider中调用Pipeline 最后,在Spider中,我们可以通过yield语句将Item传递给Pipeline进行处理。Pipeline将对Item进行处理,并将其传递给下一个处理器。 下面是一个示例Pipeline类的代码: ``` python import json class MyPipeline(object): def __init__(self): self.file = open('items.json', 'wb') def process_item(self, item, spider): line = json.dumps(dict(item)) + "\n" self.file.write(line) return item def spider_closed(self, spider): self.file.close() ``` 在这个示例中,我们定义了一个MyPipeline类,它将Item保存到JSON文件中。在process_item方法中,我们将Item转换为JSON字符串,并将其写入文件中。在spider_closed方法中,我们关闭文件。 在settings.py文件中,我们可以使用以下代码来启用我们的Pipeline类: ``` python ITEM_PIPELINES = { 'myproject.pipelines.MyPipeline': 300, } ``` 在Spider中,我们可以通过以下代码将Item传递给Pipeline进行处理: ``` python def parse(self, response): item = MyItem() # 填充item数据 yield item ``` 在这个示例中,我们使用yield语句将Item传递给Pipeline进行处理。Pipeline将对Item进行处理,并将其传递给下一个处理器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值