python爬虫分类和robots协议 | python爬虫实战之一

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 本节介绍了爬虫的由来,爬虫的基本流程,以及爬虫如何来获得一个新的URL,还对robot协议作出一些简单地介绍。

python概述

爬虫一直是跟大数据关系比较密切的,大数据就是对海量数据处理的一些方式,包含对海量数据如何采集。以前对于数据的采集是通过日志的方式来进行。而在现在的移动互联时代,面对大量数据,我们如何去拿到我们想要的内容。灵感就来自于爬虫。爬虫在我们身边一直存在,搜索引擎本身就属于爬虫。最早的搜索引擎就是数据库关系建立的,随着数据规模越来越大,发现仅依靠数据库是不行的,搜索引擎诞生之后,发现数据太多了,而且为了迎合大众,必须去不断的收集这些信息。而实际上,最早遇到大数据难题的就是搜索引擎(雅虎、谷歌、百度等)。搜索引擎为了大量的自动化的去采集数据,所以编写了爬虫。

爬虫,应该称为网络爬虫,也叫网页蜘蛛、网络机器人、网络蚂蚁等。

搜索引擎,就是最早的网络爬虫的应用者。大多数网站提供的数据必须自动采集,大多数网站提供的内容也必须自动更新,这是它的主要工作内容。那对于爬出来的数据如何处理,存放在传统的数据库中是否合适,是否可以放在日志中处理,存放多大的空间,在早期的时候处理海量数据是搜索引擎的难题。爬虫只是解决了数据采集的难题,而数据如何存储,数据如何处理,数据如何查询这才是真正需要考虑的东西。

为什么到了今天,反而这个词汇被频繁的提起呢?有搜索引擎不就够了吗?实际上,大数据时代的到了,所有的企业都希望通过海量数据发现其中的价值。所以,需要爬取对特定网站、特定类别的数据,而搜索引擎不能提供这样的功能,因此,需要自己开发爬虫来解决。

爬虫分类

通用爬虫

常见就是搜索引擎,无差别的收集数据、存储,提取关键字,构建索引库,给用户提供搜索接口。
爬取一般流程
1、初始一批URL, 将这些URL放到待爬取队列

2、从队列取出这些URL, 通过DNS解析IP, 对IP对应的站点下载HTML页面, 保存到本地服务器中, 爬取完的URL放到已爬取队列。

在搜索引擎中有文字必须全部爬取,然后对这些文字进行处理,即建立索引,我们一般称为倒排索引,其实就是通过索引来找文档。我们对爬取的内容是什么样的形式并不关心,但是需要注意,中文与拉丁字母是不一样的,中文中除了标点符号这些断字断句之外,语义上是不间断的,与英文不一样,不间断即为一个单词。中文必须要进行分词处理。然后我们就可以下载这个html页面了,即在浏览器中把拓扑树解析了,所有的文本内容迭代出来,然后获取得到。爬取的内容需要保存到本地服务器当中, 爬取完的URL放到已爬取队列。

3、分析这些网页内容, 找出网页里面的其他关心的URL链接, 继续执行第2步, 直到爬取条件结束。

在URL里面将链接提取出来之后,然后就能确定这个链接是指向哪个域名或者IP的,之后就可以进一步的将域名或者IP加入到待爬取队列当中。待爬取队列数据是在不断增加的,对于爬虫而言,则会不断地去迭代待爬取队列,对URL所对应的的内容进行提取,之后对内容进行存储、归档、分析,判断是否有新的URL链接,然后周而复始。

搜索引擎如何获取一个新网站的URL

  • 新网站主动提交给搜索引擎
  • 通过其它网站页面中设置的外链
  • 搜索引擎和DNS服务商合作, 获取最新收录的网站

聚焦爬虫

有针对性的编写特定领域数据的爬取程序,针对某些类别数据采集的爬虫,是面向主题的爬虫(爬取体育版的内容,娱乐版的内容)。

聚焦爬虫的爬取流程跟通用爬虫的爬取流程是一样的。

Robots协议

指定一个robots.txt文件, 告诉爬虫引擎什么可以爬取。
我们以下面为例,截取部分做说明。
淘宝 http://www.taobao.com/robots.txt

image.png
image.png
image.png
image.png

User-agent在网站中是非常重要的,可以对用户类别的分析,浏览器的分析等,对于爬虫来讲,需要告知是什么类型的爬虫,例如:Baiduspider则必须要遵守下面所描述的约定。允许爬取什么内容,不允许爬取什么内容,需要去遵守。

淘宝首页所带的搜索框是没有爬虫的搜索引擎,而是把所有商品的类目用来建立一个索引库。

对于Googlebot相对可以爬取的内容就比较多一点。对于某些网站来讲,是欢迎搜索引擎的。

Bingbot允许搜索的内容和Googlebot一样。

Yahoo中可以爬取的内容相较于上面两个而言,是比较少一点的。

User-Agent是其他的意思,其他搜索引擎是不允许爬取的。

我们再来看一下马蜂窝的robots协议:
马蜂窝:http://www.mafengwo.cn/robots.txt

image.png
image.png
image.png

User-agent:*代表通用。也就是说所有的搜索引擎都必须遵守下列的协议。
马蜂窝上面所列都不允许去爬取。
其它爬虫,不允许爬取

User-Agent:*
Disallow:/

如果需要知道网站的内容信息,需要去Sitemap查看。

在网站提供了友好的访问方式的情况下,我们实际上是可以不去爬取那些不被允许爬取的内容的,但是如果站点信息并没有提供,那么我们可以根据robots来知道关键数据在哪(一般不建议)。

robots协议是一个君子协定,“爬亦有道”。

这个协议为了让搜索引擎更有效率搜索自己内容, 提供了如Sitemap这样的文件。这个文件禁止抓取的往往又是可能我们感兴趣的内容,它反而泄露了这些地址。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3天前
|
存储 数据采集 数据库
Python爬虫实战:股票分时数据抓取与存储
Python爬虫实战:股票分时数据抓取与存储
|
28天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
56 20
|
30天前
|
数据采集 JSON 数据格式
Python爬虫:京东商品评论内容
京东商品评论接口为商家和消费者提供了重要工具。商家可分析评论优化产品,消费者则依赖评论做出购买决策。该接口通过HTTP请求获取评论内容、时间、点赞数等数据,支持分页和筛选好评、中评、差评。Python示例代码展示了如何调用接口并处理返回的JSON数据。应用场景包括产品优化、消费者决策辅助、市场竞争分析及舆情监测。
|
1月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
106 61
Python装饰器实战:打造高效性能计时工具
|
1月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
95 1
|
1月前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
83 3
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
机器学习/深度学习 算法 Python
Python机器学习(sklearn)——分类模型评估与调参总结(下)
Python机器学习(sklearn)——分类模型评估与调参总结
4970 0
|
机器学习/深度学习 算法 测试技术
Python机器学习(sklearn)——分类模型评估与调参总结(上)
Python机器学习(sklearn)——分类模型评估与调参总结
6524 0
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章

推荐镜像

更多