Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python爬虫学习:爬虫与反爬虫

python爬虫学习:爬虫与反爬虫

作者头像
python学习教程
修改于 2019-07-10 06:39:10
修改于 2019-07-10 06:39:10
4.2K0
举报
文章被收录于专栏:python学习教程python学习教程

点击蓝字“python教程”关注我们哟!

前言

Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!

一.简介

万维网上有着无数的网页,包含着海量的信息,有些时候我们需要从某些网站提取出我们感兴趣、有价值的内容。但是不可能靠人工去点击网页复制粘贴。我们需要一种能自动获取网页内容并可以按照指定规则提取相应内容的程序,这就是爬虫。

网络爬虫本质就是http请求,浏览器是用户主动操作然后完成HTTP请求,而爬虫需要自动完成http请求,网络爬虫需要一套整体架构完成工作。

一般来说一个完整的爬虫生命周期包括:URL管理、页面下载、内容抽取、持久化。

URL管理

首先url管理器添加了新的url到待爬取集合中,判断了待添加的url是否在容器中、是否有待爬取的url,并且获取待爬取的url,将url从待爬取的url集合移动到已爬取的url集合。

页面下载

下载器将接收到的url传给互联网,互联网返回html文件给下载器,下载器将其保存到本地,一般的会对下载器做分布式部署,一个是提交效率,再一个是起到请求代理作用。

内容抽取

页面解析器主要完成的是从获取的html网页字符串中取得有价值的感兴趣的数据和新的url列表。数据抽取比较常用的手段有基于css选择器、正则表达式、xpath的规则提取。一般提取完后还会对数据进行一定的清洗或自定义处理,从而将请求到的非结构数据转化为我们需要的结构化数据

数据持久化

数据持久化到相关的数据库、队列、文件等方便做数据计算和与应用对接。

二.爬虫分类

网络爬虫按照实现的技术和结构一般分为通用网络爬虫、聚焦网络爬虫。从特性上也有增量式网络爬虫和深层网络爬虫等类别,在实际的网络爬虫中,通常是这几类爬虫的组合体。

通用网络爬虫

通用网络爬虫(General Purpose Web Crawler)。通用网络爬虫又叫作全网爬虫,顾名思义,通用网络爬虫爬取的目标资源在全互联网中。通用网络爬虫所爬取的目标数据是巨大的,并且爬行的范围也是非常大的,正是由于其爬取的数据是海量数据,故而对于这类爬虫来说,其爬取的性能要求是非常高的。这种网络爬虫主要应用于大型搜索引擎中,有非常高的应用价值。

通用网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。通用网络爬虫在爬行的时候会采取一定的爬行策略,主要有深度优先爬行策略和广度优先爬行等策略。

聚焦网络爬虫

聚焦网络爬虫(Focused Crawler)也叫主题网络爬虫,顾名思义,聚焦网络爬虫是按照预先定义好的主题有选择地进行网页爬取的一种爬虫,聚焦网络爬虫不像通用网络爬虫一样将目标资源定位在全互联网中,而是将爬取的目标网页定位在与主题相关的页面中,此时,可以大大节省爬虫爬取时所需的带宽资源和服务器资源。聚焦网络爬虫主要应用在对特定信息的爬取中,主要为某一类特定的人群提供服务。

聚焦网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块等构成。内容评价模块可以评价内容的重要性,同理,链接评价模块也可以评价出链接的重要性,然后根据链接和内容的重要性,可以确定哪些页面优先访问。

增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler),所谓增量式,对应着增量式更新。增量式更新指的是在更新的时候只更新改变的地方,而未改变的地方则不更新,所以增量式网络爬虫,在爬取网页的时候,只爬取内容发生变化的网页或者新产生的网页,对于未发生内容变化的网页,则不会爬取。增量式网络爬虫在一定程度上能够保证所爬取的页面,尽可能是新页面。

深层网络爬虫

深层网络爬虫(Deep Web Crawler),常规的网络爬虫在运行中无法发现隐藏在普通网页中的信息和规律,缺乏一定的主动性和智能性。深层网络爬虫则可以抓取到深层网页的数据。一般网络页面分为表层网页和深层网页。 表层网页是指传统搜索引擎可以索引的页面,而深层页面是只有用户提交一些关键词才能获得的页面,例如那些用户注册后内容才可见的网页就属于深层网页。

三.爬虫与反爬虫

爬虫目的是自动化的从目标网页获取数据,但是这个行为会对目标站点造成一定压力,对方出于对站点性能或数据的保护,一般都会有反爬手段。所以在开发爬虫过程中需要考虑反反爬。

爬虫开发过程中常见分布式(代理IP)、异步数据解析(内置浏览器内核)、光学图片识别、模拟验证(模拟请求Header、User-Agent、Token)等手段。网络爬虫会为Web服务器带来巨大的资源开销,当我们编写的爬虫数据不能给我们带来价值时,我们应停止没必要的网络请求来给互联网减少干扰。

站点反爬一般会考虑后台对访问进行统计,对单个IP,Session、单种User-Agent访问超过阈值或 Referer缺失的请求进行封锁,Robots协议,异步数据加载,页面动态化,请求验证拦截等。高端的反反爬包括混淆、不稳定代码、给假数据(投毒)、行为分析、假链陷阱、字符转图片等。一般反爬虫策略多数用在比较低级的爬虫上,这类爬虫多为简单粗暴的不顾服务器压力不停访问,再一种为失控的或被人遗忘的爬虫,这类爬虫一般需要在第一时间封锁掉。

鉴于爬虫爬取的数据为目标网站发布于互联网的公开数据,所以理论上是不可能完全阻止掉爬虫的。站点能做的只是增加爬虫的爬取难度,让爬虫的开发成本增高从而知难而退。越是高级的爬虫,越难被封锁,相应高级爬虫的开发成本也越高。

在对高级爬虫进行封锁时,如果成本高到一定程度,并且爬虫不会给自己带来大的性能压力和数据威胁时,这时就无需继续提升成本和爬虫对抗了。目前大多热门站点在与爬虫的博弈中,多维持着一个爬虫与反爬虫的平衡,毕竟双方都是为了在商业市场中获取利益,而不是不计成本的干掉对方。

注意事项

01

对Python开发技术感兴趣的同学,欢迎加下方的交流群一起学习,相互讨论。

02

学习python过程中有不懂的可以加入我的python零基础系统学习交流秋秋qun:934109170,与你分享Python企业当下人才需求及怎么从零基础学习Python,和学习什么内容。相关学习视频资料、开发工具都有分享

好啦!文章就给看官们分享到这儿

最后,如果觉得有帮助,记得关注、转发、收藏哟

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器之心GMIS 2017圆满闭幕,全面解读前沿研究、产业落地及AI全球化
机器之心原创 机器之心编辑部 5 月 28 日,机器之心主办的第一届全球人工智能峰会(GMIS 2017)顺利闭幕。在为期两天的大会中,许多学界和业界的重量级嘉宾在 GMIS 的舞台上分享了机器学习的前沿进展、交叉学科的新奇思想、人工智能的炫酷应用以及机器智能时代的创业经验。在第一天,有「LSTM 之父」之称的 Dalle Molle 人工智能研究所副主任 Jürgen Schmidhuber、Citadel 首席人工智能官邓力、腾讯 AI Lab 副主任俞栋等嘉宾为我们带来了干货十足的头脑风暴和前沿解读。
机器之心
2018/05/07
6410
机器之心GMIS 2017圆满闭幕,全面解读前沿研究、产业落地及AI全球化
【327峰会直击】新智元“春节”引爆AI原力,群星纵论中国AI大棋局
【新智元导读】新智元327技术峰会今天圆满举行。 腾讯科技直播地址:http://v.qq.com/live/p/topic/26417/preview.html 2017年3月27日,一场中国人工智能界的 “狂欢节” 在北京盛大启幕:智能+中国主平台新智元携手行业巨头英特尔联合举办新智元2017开源·生态AI技术峰会暨新智元创业大赛颁奖盛典。包括“BAT”在内的中国主流 AI 公司、600多名行业精英齐聚,共同为2017中国人工智能的发展画上浓墨重彩的一笔。 新智元连续两年在3月27日举办行业技术峰会,
新智元
2018/03/27
1.2K0
【327峰会直击】新智元“春节”引爆AI原力,群星纵论中国AI大棋局
72小时AI生存挑战,发生了什么?| Q推荐
7 位来自不同背景的参与者——大厂产品经理、20 岁大学生、独立开发者、大模型算法工程师、金鸡奖提名导演、AI 博士生……在一个 72 小时的 AI 封闭空间,没有智能手机,无法使用 APP、浏览器等互联网及移动互联网产品,只有 AI 工具和 100 元启动资金。他们需要靠 AI 活下来,最好还能创造点什么。
深度学习与Python
2025/06/13
160
72小时AI生存挑战,发生了什么?| Q推荐
一周AI看点 |上汽拿到加州第35张自动驾驶测试牌照,下一代Windows 10更新可用AI抵御勒索病毒
大家好,今天又是周末了,又双叒叕到了给大家写AI行业一周回顾的“好时候”了。今天是7月2日,想到此,小编内心惶恐不安,因为 我却是没什么太大的进步,该念的书还是没有念,该上的课也错过好几期了,真的好心痛... 如果周一到周五以工作忙,学习忙为借口,好吧,我可以原谅自己下班后懒惰一下,但是周末如果还不利用时间学习下,简直无法原谅自己... 因为我深深知道能主宰周末的人生才是赢家。 好了,感慨完毕,我们一起看看本周AI圈儿里都发生了哪些事儿。 行业 ➤埃森哲预测:2035年人工智能有望拉动中国经济增
AI科技大本营
2018/04/26
1.1K0
一周AI看点 |上汽拿到加州第35张自动驾驶测试牌照,下一代Windows 10更新可用AI抵御勒索病毒
马云底特律演讲:AI革命或引发第三次世界大战,但胜利属于人类
文字来源 | 环球时报 当地时间6月21日,马云在“连接世界”美国中小企业论坛上,发表了以“中国的贸易机会”为主题的公开演讲。演讲中他不仅收获了现场观众的数次热烈鼓掌,也引发了线上网友的极大共鸣。 马云讲到:“我问过很多美国人对中国有何印象,答案总是熊猫、自行车、长城、太极……中国已经改变了,中国已经从无名小卒,成长为今天的全球第二大经济体”。马云认为,未来30年对中小企业意味着新的机遇,“在中国你能找到几乎所有的美国大企业,但我们需要更多中小企业。我鼓励政府要为中小企制定特别自由贸易区。”这一提议得到了在
大数据文摘
2018/05/24
6720
万字长文:AI陪伴产品的终极解法?
导语|此篇文章是本人及多名朋友联合 产品人Super黄 共同创作的深度长文,欢迎对这个话题感兴趣的各位“浩浩爸”们疯狂戳戳俺,一起讨论交流~
腾讯大讲堂
2024/01/03
1.1K0
万字长文:AI陪伴产品的终极解法?
AI时代,人类就业的终极未来
2025年1月8日,由腾讯研究院和腾讯可持续社会价值事业部主办的“2025 腾讯科技向善创新节 T-WEEK”正式播出。本次创新节以“拟合”为主题,包含近二十场主题演讲与圆桌论坛。
小腾资讯君
2025/01/17
2240
纽约客:AI 是否会成为人类的最后发明?
【导读】Nick Bostrom 是《超级智能:路线图、危险性与应对策略》的作者,他认为真正的人工智能可能拥有巨大的威胁,如果人类没有小心处理,很可能会走向自我灭绝的道路。 Bostrom 提出了大过滤器的观点,他说生命总倾向于扩张,但到目前为止我们还没有观察到外星生命。Bostrom 说这可能是大过滤器的原因,所有的文明可能都得发展出某些技术,而新的技术发现也许会导致普遍的生存灾难。 这里所说的技术,就是人工智能。 Bostrom 的论述总有一种“优雅”的悖论:一方面是逻辑清晰的分析和论述,另一方面又不
新智元
2018/03/13
1.6K0
纽约客:AI 是否会成为人类的最后发明?
AI崛起,新闻长存|3万字圆桌实录
本期为《仲夏六日谈》第三季第二期节目文字内容,主题为《生成与真相:大模型时代的传媒业》。
小腾资讯君
2024/08/15
1690
新冠疫情过后,世界将会怎样?| “互联网女皇”疫情趋势深度报告
报告要点: 1、新冠疫情改变了我们的现代化生活方式,但我们对这种变化的理解才刚刚开始。 2、以前的史诗级病毒已经永久性地改变了世界,但是由于目前拥有信息共享和科学技术,所以新冠病毒的影响可能会减弱。 3、科学家和其他领域的专家正在获得更多话语权。 4、由于在家工作的人很多,数字化转型正在加速。工作与生活逐渐达到新的平衡。 5、从远程医疗到快速定点诊断,再到将自动化和人工智能技术在医疗保健领域的应用,这可能会吹响技术与医疗加强融合的号角。 6、“我们是乐观主义者,并相信绝望的另一面是希望……我们需要政府、企
腾讯大讲堂
2020/04/23
8540
人工智障 2 : 你看到的AI与智能无关
两年前,写了一篇文章《为什么现在的人工智能助理都像人工智障》,当时主要是怼“智能助理们”。这次呢则是表达 “我不是针对谁,只是现在所有的深度学习都搞不定对话AI”,以及“你看都这样了,那该怎么做AI产品”。
Fayson
2019/11/28
1.3K0
拐点时刻?AIGC时代的新闻业
2022年底,OpenAI发布自然语言对话应用ChatGPT,并在今年3月迭代推出GPT-4,迅速吸引了各行业与公众的关注。全球范围内大模型风云骤起,资金、技术、人才持续涌入,科技公司布局不断,纷纷推出自家的大模型。据估算,到2030年,AIGC市场规模有望突破万亿元。
小腾资讯君
2023/08/30
6810
拐点时刻?AIGC时代的新闻业
形塑新闻:AI时代新闻业的7个变化|腾讯研究院3万字报告
时至 2024 年 10 月,生成式 AI 的热潮尚未褪去,但现实也已经与 GPT-3 刚刚发布时的那种狂热图景完全不同。人们开始更冷静地审视大模型的技术局限,更关注大模型在各种领域的实际应用与落地情况,以及由此带来的改变。
小腾资讯君
2024/11/11
5590
《增长黑客》节选与笔记[通俗易懂]
这本书涉及了很多具体又贴合现实的互联网产品问题,即使你是非专业人士,也应该读一读,了解开发者是如何把你当猫耍的,以便你更好地认识一些套路,解锁,为选择手机软件或者云端应用擦亮眼睛!
全栈程序员站长
2022/08/27
7.8K0
斯坦福博士退学,在 3 个领域改变世界,科技狂人马斯克的巅峰之路
近日,美股特斯拉(TSLA)股价连创新高,按1月6日收盘价每股451.54美元计算,总市值已达813.9亿美元。
AI科技大本营
2020/02/20
1.4K0
斯坦福博士退学,在 3 个领域改变世界,科技狂人马斯克的巅峰之路
龙哥风向标 20230411~20230418 GPT拆解
盈利点:利用Midjourney的提示词样式衣服商机,可以开展国内的衣服定制业务,提供定制化的提示词样式衣服,包括MJ提示词样式和其丨他样式,同时可以考虑提供定制情侣衫、班服等服务。
ApacheCN_飞龙
2024/01/31
3650
推荐阅读
相关推荐
机器之心GMIS 2017圆满闭幕,全面解读前沿研究、产业落地及AI全球化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档