网络数据采集基础(一)

基础引入

1. 爬虫是什么?

2. HTTP/HTTPS请求与响应

**3. 抓包/抓包工具Fiddler、wireshark使用方式 **

4. urllib2(Python 2.x)/request.request(Python 3.x)


爬虫是什么?

爬虫(web crawler) ,也叫网络蜘蛛,字面意思一定不理解。他是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。[维基百科]

爬虫访问网站的过程会消耗目标系统资源。不少网络系统并不默许爬虫工作。因此在访问大量页面时,爬虫需要考虑到规划、负载,还需要讲“礼貌”。 不愿意被爬虫访问、被爬虫主人知晓的公开站点可以使用robots.txt文件之类的方法避免访问。这个文件可以要求机器人只对网站的一部分进行索引,或完全不作处理。

互联网上的页面极多,即使是最大的爬虫系统也无法做出完整的索引。因此在公元2000年之前的万维网出现初期,搜索引擎经常找不到多少相关结果。现在的搜索引擎在这方面已经进步很多,能够即刻给出高质量结果。

简单来说爬虫就是用来做网络数据采集的,什么是网络数据采集?

网络数据采集就是利用某种手段可以是人工可以是计算机从网络浏览器抓取对你有用的数据进行本地化保存;无用的数据进行过滤操作。网络浏览器,抓取?我们日常生活中总会用到浏览器,我们可以用它来浏览各种各样的网页,比如说Google、百度等等。那么我们人眼所见到的画面又是如何制作而成的呢?

他一定不是杂乱无章的!! 无论是手机上还是电脑上,我们看到的都是经过浏览器内核渲染过的画面(后面我回去总结)我们拿事实情况去看去分析。
百度浏览器页面

文字摆放整齐,logo显示清晰,给人一种美感

上述的每一个东西,在爬虫界中都叫做元素,爬虫就是把上面你认为对你有帮助的元素給爬取下来。

爬虫最讲究的不是所见即所得,而是数据来源,这些文字,这些图片/音视频的来源(或是说地址)是哪儿? 这就是爬虫需要分析的地方.

通用爬虫和聚焦爬虫:

通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。

第一步:抓取网页

搜索引擎网络爬虫的基本工作流程如下:

  1. 首先选取一部分的种子URL,将这些URL放入待抓取URL队列;

  2. 取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。

  3. 分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环…

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

  4. 新网站向搜索引擎主动提交网址:(如百度http://zhanzhang.baidu.com/linksubmit/url)

  5. 在其他网站上设置新网站外链(尽可能处于搜索引擎爬虫爬取范围)

  6. 搜索引擎和DNS解析服务商(如DNSPod等)合作,新网站域名将被迅速抓取。

但是搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件的内容,如标注为nofollow的链接,或者是Robots协议。

Robots协议(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,例如:

淘宝网:https://www.taobao.com/robots.txt

腾讯网: http://www.qq.com/robots.txt

第二步:数据存储

搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。

搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。

第三步:预处理

搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。

  • 提取文字
  • 中文分词
  • 消除噪音(比如版权声明文字、导航条、广告等……)
  • 索引处理
  • 链接关系计算
  • 特殊文件处理

除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。

但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。

第四步:提供检索服务,网站排名

搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。

同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,这样Rank值高的网站在搜索结果中会排名较前,当然也可以直接使用 Money 购买搜索引擎网站排名,简单粗暴。

课外阅读:Google搜索引擎的工作原理

但是,这些通用性搜索引擎也存在着一定的局限性:

  1. 通用搜索引擎所返回的结果都是网页,而大多情况下,网页里90%的内容对用户来说都是无用的。
  2. 不同领域、不同背景的用户往往具有不同的检索目的和需求,搜索引擎无法提供针对具体某个用户的搜索结果。
  3. 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎对这些文件无能为力,不能很好地发现和获取。
  4. 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询,无法准确理解用户的具体需求。

针对这些情况,聚焦爬虫技术得以广泛使用。

聚焦爬虫

聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

而我们今后要学习的,就是聚焦爬虫。


HTTP/HTTPS请求与响应

浏览器浏览网页需要下载网页,需要缓存数据,数据不是杂乱无章。学过计算机基础的都知道,网页是有静态网页(HTML)和动态网页(JSP)等等组成的。 HTML文件经过浏览器渲染,形成人们想要见到的样子。

网页源代码
使用开发者工具(在浏览器中右击)即可查看网页源代码(html代码)
这里要回顾下基础
URL、HTML、HTTP、TCP四层模型
TCP的四层模型(这里不再详解)

HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。

SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。

  • HTTP的端口号为80
  • HTTPS的端口号为443

HTTP工作原理

网络爬虫抓取过程可以理解为模拟浏览器操作的过程

浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示您选择的网络资源,HTTP是一套计算机通过网络进行通信的规则。

当浏览器收到一个URL的时候,会执行哪些相应的步骤?

​ a. 浏览器通过DNS域名解析器,解析出主机名(url—>ip/ip—>url);

​ b. 浏览器获得主机名的ip地址后,并获得其端口号,端口号决定了应用层隶属于什么应用(HTTP?还是FTP?还是 SMTP?还是POP3) 那我们浏览器不需要关心这些,他把URL交给了底层,底层回去帮其分析:

网络数据采集基础(一) ---认识爬虫相关推荐

  1. 自学Python第十四天- 一些有用的模块:urllib、requests 网络编程基础,向爬虫靠拢

    自学Python第十四天- 一些有用的模块:urllib.requests 网络编程基础,向爬虫靠拢 fake_useragent 库 安装 fake_useragent 使用 urllib 库 ur ...

  2. Python网络数据采集系列-------概述

    这是一个正在准备中的系列文章,主要参考的是<Web Scraping with Python_Collecting Data from the Modern Web-O'Reilly(2015) ...

  3. Python爬虫初学二(网络数据采集)

    目录 一.网络数据采集 1.什么是网络数据采集 2.网络数据采集的特点 二.网络数据采集之urllib库 三.网络数据采集之requests库 1.requests安装 2.request方法汇总 3 ...

  4. 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫

    笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...

  5. python网络爬虫的基本步骤-黑客基础 编写Python爬虫入门步骤

    原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...

  6. 《爬虫与网络编程基础》学习

    <爬虫与网络编程基础>学习 任务1:计算机网络基础 Step1-2 Step 3:关于XML格式的学习 XML文件格式 XML文件的常见操作 1.构建xml格式文件 2. 保存XML文件 ...

  7. python手绘效果图_2020高校邦《马克笔手绘效果图》判断题答案2020高校邦《网络数据采集与Python爬虫(山东大学定制班级)》见面课测试答案...

    2020高校邦<马克笔手绘效果图>判断题答案2020高校邦<网络数据采集与Python爬虫(山东大学定制班级)>见面课测试答案 更多相关问题 工程项目竣工验收.交付使用,应达到 ...

  8. Python编程:从入门到实践+爬虫开发与项目实战+网络编程基础+项目开发实战

    给还在苦苦自学Python的小伙伴们分享一波学习教程~有了它们,至少能节省50%的时间,少走一半的弯路. 书不在多,而在于精~ <Python编程:从入门到实践>豆瓣评分9.2 本书是针对 ...

  9. python学起来难不难-零基础学Python爬虫难不难?要怎么学?

    零基础学Python爬虫难不难?要怎么学?众所周知,Python是最容易上手的编程语言,如果有一定基础,学会Python爬虫也是分分钟钟的事.对于零基础的学习者来说,Python爬虫也是比较简单的,只 ...

最新文章

  1. python 之路200行Python代码写了个打飞机游戏
  2. python open方法下file模块_python-linecache模块读取文件用法
  3. CS229 6.6 Neurons Networks PCA主成分分析
  4. hdu4849 最短路
  5. python 改变词典顺序_按词典顺序排列的功率集
  6. 没有bug队——加贝——Python 练习实例 25,26
  7. 1.7编程基础之字符串 03 基因相关性 python
  8. Apache软件基金会Member陈亮:一名开源拓荒者的 Apache之旅
  9. 自己实现一个右滑删除的ListView
  10. visual studio code无法连接网络,五种方法
  11. spring boot如何创建一个start_如何创建一个简单的Spring应用?
  12. 程序员带实习生事后却遭遇白眼狼,吐槽:真TM心累
  13. 【大数据采集技术与应用】【第一章】【大数据采集技术与应用概述】
  14. 尚学堂马士兵_Struts2下载完成
  15. GraphicsView学习-内容介绍(1)
  16. Ueditor编辑器插入外链视频支持手机播放【iframe标签】
  17. php 工商银行公众号支付代码_微信支付 —— 公众号支付代码详解(1/7)
  18. 2022春招——芯动科技FPGA岗技术面(一面心得)
  19. android怎么做表格显示数据
  20. setoolkit 制作钓鱼网页

热门文章

  1. 面向物联网的 23 个开源软件项目
  2. 联想 小新 Pro 16 2022 锐龙版评测
  3. 从我看到的--一个普通员工的自我剖析
  4. 嵌入式系统软件架构设计
  5. DW网页设计大作业成品品分享,Div+Css,主题如风景、校园、美食、动漫、lol、咖啡...
  6. [乱说]Electron 无边框窗口最大化最小化关闭功能
  7. NSIS 脚本知识汇总
  8. Python水文模型常用库介绍
  9. EXCEL 删除一列超过3小时的数据公式
  10. Win10系统没有声音解决办法