




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.3互联网数据获取方法互联网数据获取方法概述互联网数据是指在网络空间交互过程中产生的大量数据,例如抖音、微博等社交媒体产生的数据。互联网数据获取是利用互联网搜索引擎技术对数据进行针对性、精准性的抓取,并按照一定的规则和筛选标准将数据进行归类,形成数据文件的过程。互联网数据获取方法概述获取互联网数据的流程大致如图所示:互联网数据的主要来源为网页,网页的组成涉及HTML、CSS和JavaScript这三块知识。爬虫获取并拼接重组生成URL列表,再模拟浏览器对网络服务器发出访问请求,得到原始网页,再通过网页解析技术将藏在网页里的重要的数据提取出来。这个过程中涉及到的HTTP协议、URL重组等知识本节会一一介绍。另外,使用成熟的框架和包可以帮助我们快捷的完成爬虫任务。网络服务器网络浏览器网页访问请求网页解析目标数据HTTP协议网页——网页组成网页是可以在互联网上进行信息查询的信息页,通过网页浏览器阅读。网页组成主要涉及三块知识:HTML、CSS和JavaScript。HTML是网页内容的载体,包含文字、图片、视频等。CSS样式使得网页的外观更加丰富,可以改变字体的颜色、样式,加边框等。JavaScript则是用来实现网页上的特效效果例如弹出下拉菜单、图片轮换等。网页——网页组成HTML所有网页都由HTML组成,它基本上由包裹在标签周围的纯文本组成,标签让网络浏览器知道以什么样的方式呈现文本。标签含义<html>...</html>HTML文档的开始和结束<!DOCTYPEhtml>HTML文档的注释<head>...</head>包含有关文档的元信息<body>...</body>包含文档的正文<title>...</title>指明文档的标题<h1>...</h1>指明正文中的小标题<div>...</div>代码块,通常用于对一组元素进行分组<p>...</p>表示一个段落<table>...</table>表示一个表格代码块<tr>...<tr/>表示一行<td>...</td>表示单个单元格……表示图像网页——网页组成CSSCSS(层叠样式表)是另一项关键技术。在浏览器中查看网页源代码,经常有一些HTML属性存在于许多标签中:比如“id”用于将页面唯一标识符附加到某个标签;“class”列出了一系列以空格分隔的CSS类名。=======================color:'red';background-color:#ccc;font-size:14pt;border:2pxsolidyellow;=======================CSS的语法看起来与HTML有点不同。在CSS中,样式信息被写成以冒号分隔的基于键值的语句列表,每个语句本身用分号分隔,如右所示:网页——网页组成JavaScript是一种在浏览器端实现网页与用户交互的技术。JavaScript代码嵌套在HTML网页中响应一系列的事件,当一个JavaScript函数约定响应的动作发生时,浏览器就执行对应的JavaScript代码。对于静态网页的爬取比较简单,因为html代码一旦生成,页面的内容和显示效果就基本上不会发生变化了,而动态加载的页面,其显示的内容可以随着时间、环境或者数据库操作的结果而发生改变。通常解决办法有两种:分析网页元素,找出该数据的原始网页,提交表单,用来达到爬取的目的;使用selenium组件。网页——网页访问原理如今,互联网已经融入到人们日常生活的方方面面,以至于人们很少考虑到它背后逻辑的复杂性。每当上网时,浏览器就会启动一系列网络协议,在几秒钟内就与世界各地的计算机建立连接并检索数据。一旦导航到一个网站,例如“”,网络浏览器就会执行下列这些步骤:IP地址网址输入DNS路由器发送数据包网络浏览器转换回复响应网络服务器建立联系HTTP回复网页呈现网页——搜索引擎工作原理搜索引擎是在网络文档中搜索指定关键字的程序,并返回在万维网中找到的包含关键字的所有网络文档的列表。搜索引擎在检索目标网页时的步骤为以下五步:1、爬取:从一个设定的种子链接(SeedURLs)开始,访问队列中的所有网址,并下载网页文档。2、资源库管理:管理大量的网络文档。收集每个网页文档并将网页文档的html压缩存储在资源库中。3、索引:索引中包含了每一个网站或网络文档。这为互联网搜索引擎提供了更有效的检索方式。4、查询:查询操作将会根据用户的搜索请求,在海量的资源库中接收相关的网页文档。5、排名:搜索引擎在搜集到数据后需要向用户展示最合适的结果。排序就是根据用户的需要自定义检索结果的顺序。爬虫工作原理——获取链接URL是统一资源定位符,用来定位互联网上标准资源的地址。而互联网上的每个文件都有唯一的一个的URL,爬虫需要知道URL,才能自动访问相应的页面并进行爬取。URL基本格式一般为:protocol://hostname[:port]/path/[;parameters][?query]#fragmentprotocol为传输协议,最常见的就是http。hostname为主机名,是指存放资源的服务器的域名系统(DNS)主机名或IP地址。port为端口号,各种传输协议都有默认的端口号,如http的默认端口为80。Path为路径,由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。Parameters为参数,这是用于指定特殊参数的可选项。Query表示查询,可选,用于给动态网页传递参数,可有多个参数。Fragment为信息片断,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。爬虫工作原理——访问网页1、HTTP现在看看HTTP请求和回复是什么样的。正如前面所介绍的,网络浏览器和网络服务器通过发送纯文本消息进行通信。客户端向服务器发送请求,服务器发送响应或回复。请求消息包含内容响应消息包含内容请求行状态代码和状态消息的状态行许多请求标头,每个标头都在自己的行上许多响应头,同样都在同一行上空行空行可选的消息正文,也可以占用多行可选的消息正文爬虫工作原理——访问网页以下代码片段显示了由网络浏览器执行的完整HTTP请求消息:=========================================================GET/HTTP/1.1Host:Connection:keep-aliveCache-Control:max-age=0Upgrade-Insecure-Requests:1User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/60.0.3112.90Safari/537.36Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Referer:https:///Accept-Encoding:gzip,deflateAccept-Language:en-US,en;q=0.8,nl;q=0.6<CR><LF>=========================================================1、“GET/HTTP/1.1”是请求行。它包含了浏览器需要执行的HTTP“方法”以及HTTP版本。2、请求标头,每个标头都在自己的行上。每个标头都包含一个名称(例如“Host,”),后跟一个冒号(“:”)和标头的实际值(“”)。3、“Connection:keep-alive”可以向服务器发出信号,为后续请求保持连接状态4、“User-Agent”包含一个大文本值,浏览器通过它通知服务器它是什么(Chrome),以及它正在运行的版本5、“Accept”告诉服务器浏览器更喜欢返回哪种形式的内容6、“Referer”标头告诉服务器浏览器来自哪个页面7、最后,请求消息以空白的<CR><LF>行结束爬虫工作原理——访问网页以下代码片段显示了由网络浏览器执行的完整HTTP响应消息:1、“第一行表示请求的状态结果。它列出了服务器认可的HTTP版本(“HTTP/1.1”),然后是状态代码(“200”)和状态消息(“OK”)2、”Date”为时间3、”Content-Type”为浏览器提供有关回复中包含的内容的信息,在这里,它是HTML文本,但也可能是二进制图像数据、电影数据等4、”Server”为服务器版本5、空白的<CR><LF>行6、消息正文:包含回复的实际内容。在这里,内容是HTML文本,其中包含“HelloWorld”正是这些HTML内容将被网页浏览器解析并显示在屏幕上。同样,消息正文是可选的,但由于用户希望大多数请求实际上返回一些有用的内容,所以一般来说正文部分会包含一些内容===================================HTTP/1.1200OKConnection:keep-aliveContent-Encoding:gzipContent-Type:text/html;charset=utf-8Date:Mon,28Aug201710:57:42GMTServer:Apachev1.3Vary:Accept-EncodingTransfer-Encoding:chunked<CR><LF><html><body>HelloWorld</body></html>===================================爬虫工作原理——访问网页2、常用库requests在了解HTTP的基础上,我们可以对网页内容进行访问,这里介绍一个可以便捷获取到网页的第三方库——requests。=======================importrequestsurl='/q/1010000039170079'response=requests.get(url)print(response.text)=======================requests使用起来非常简单,首先在环境中导入requests包,然后根据浏览器发出的请求类型是get()还是post(),调用requests对应的get()或post()方法即可,调用post()方法需要带上查询参数,得到的就是浏览器返回的页面信息,之后再进行下一步处理。爬虫工作原理——网页解析1、正则表达式爬取到的网页中存在着大量的无结构的文本,我们需要提取出藏在网页中的有用的数据信息。正则表达式提供了在文本中系统化分析规律的一套语法,已经在很多软件中得到广泛的应用。常用正则表达式含义普通字符所有大写A~Z和小写字母a~z、所有数字0~9、所有标点符号和一些其他符号非打印字符比如常用的“\n”会匹配到一个换行符,“\s”会匹配到一个空白字符,“\t”会匹配到一个制表符特殊字符比如“()”就标记了一个子表达式的开始和结束。“*”就代表匹配前面的子表达式零次或多次,而“+”就代表匹配前面的子表达式一次或多次限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配定位符能够将正则表达式固定到某一个位置,比如行首或行尾,比如出现在一个单词内、在一个单词的开头或者结尾爬虫工作原理——网页解析2、BeautifulSoup包BeautifulSoup主要用于解析和提取HTML字符串中的信息。带有各种HTML解析器,使用requests获取到HTML页面,之后就可以开始使用BeautifulSoup来提取有用的信息。BeautifulSoup有很多方法,例如findParent()、findParents()、findPreviousSibling()和findPreviousSiblings()等等,这些可以帮助在HTML树中导航。3、Xpath包XPath允许识别HTML和XML文档的路径和节点。找到XPath的最常见方法是借助GoogleChrome中的开发人员工具。使用Xpath可以轻松定位到想要的元素。爬虫工作原理——网络爬虫分类人们开发出了各种类型的网络爬虫。大大提高了网络爬虫的性能和下载速度。聚焦爬虫:又称主题网络爬虫,从互联网返回给定主题的相关网页。重点抓取分析感兴趣的主题,以找到可能与抓取最相关的网络文档的URL。增量爬虫:先爬取页面获得本地集合,之后只更新新产生或者已经发生变化的页面,而不是每次都从头开始。分布式爬虫:经常应用在任务量很巨大的情况下,把任务分配给多台机器进行爬取。通过科学合理地进行任务分配,快速的完成爬取任务。并行爬虫:并行运行多个爬虫。从给定的主机一次获取多个网页。并行爬虫提高了从万维网下载Web文档的速度,其应用也很广泛。爬虫工具及软件——常用爬虫工具爬虫工具简介Spidernet支持Windows操作系统,基于递归树模型的网络爬虫框架,支持多线程爬取,可以自行设置爬取深度和最大下载字节数限制NWebCrawler基于Windows操作系统的开源网络爬虫框架,其功能丰富,支持多线程,可设置优先级的MIME类型,而且执行过程可视化Sinawler基于.NET2.0框架,提供了针对SQLServer的数据库脚本文件。该框架顾名思义,主要针对新浪微博的数据进行爬取1、C#网络爬虫工具爬虫工具及软件——常用爬虫工具爬虫工具简介Crawler4j一款基于Java的轻量级单机开源爬虫框架,支持多线程爬取,具备基于BerkeleyDB的URL过滤机制,但该框架不支持动态网页的爬取,对于采取JavaScript的网页束手无策,同时也不能进行分布式数据采集WebMagic简单灵活,高效快捷,但缺点是不能对动态页面进行有效的爬取WebCollector无须配置、便于二次开发的JAVA爬虫框架,它支持断点重爬,而且支持代理,而且该框架基于文本密度对网页正文自动抽取,但不支持分布式爬取,且没有URL优先级调度2、Java网络爬虫工具3、Python网络爬虫工具Scrapy是一个基于Twisted实现的异步处理爬虫框架,Scrap是碎片的意思,代表它可以适应任何人根据自己的需求进行修改,定制化服务。Scrapy提供了种类丰富的基类,比如BaseSpider、sitemap等。而且,Scrapy可支持Linux、Mac、Windows等各种主流平台,正是由于其诸多特性,Scrapy应用十分广泛,可用于数据采集、网络监测,以及自动化测试等多种场景。爬虫工具及软件——常用爬虫软件爬虫工具简介八爪鱼一款可视化采集器,简单易用,内置数百个网站数据源,提供多种网页采集策略及配套资源,提供云采集操作,不过需要收费,支持多格式导出,也需要积分才能实现,该软件只支持Windows操作系统。集搜客同时支持Windows版和Mac版,全图形化操作界面,对新手友好,无需具备编程基础,可以设置周期性自动采集,实现持续的增量数据采集,有利于舆情监控、商品比价和大数据挖掘。WebScraperChrome的插件,可以在chrome网上应用商店安装,也可以下载插件安装包手动安装。WebScraper非常轻量,对新手也较为友好,支持绝大多数的网页的爬取,但需要充钱才能不限爬取速度。AnyPapa与WebScraper类似,也是一款轻量级插件,不过它可以应用于Chrome、360、QQ、搜狗等多款Chromium内核的浏览器,内置通用的URL打开器,可爬取多种数据格式,支持多种数据源。火车头功能强大,接口齐全,支持接口和插件多种扩展延伸,比如PHP和C#的插件扩展。支持各种数据格式输出,采用分布式高速采集系统,可以灵活迅速地抓取网页上散乱分布的数据信息,还兼有数据分析、挖掘的能力。但只支持Windows系统,且免费的功能限制很多。爬山虎采用可视化界面,不需要编程基础,静态网页、动态网页都可以采集,支持手机APP爬取,支持多种格式文件和数据库的导出,同时内置多款网站采集模板,但价格昂贵,适合大量长期的数据需求者。其他需要注意的问题——反爬虫及应对策略反爬虫策略简介信息校验型浏览器发出请求时,客户端会把“信息”包含在请求头和请求正文中,网站想要反扒就可以从这里入手,对发出的信息进行校验,包括对信息的正确性、完整性或唯一性进行验证
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水泥栏杆安装合同范本
- 缝线推广服务合同范本
- 网络代理软件合同范本
- 租赁分期买断合同范本
- 酒店客房系统管理设计
- 青春期教育主题班会课件
- 配液主管年终总结
- 静脉麻醉取卵护理
- 湘潭大学兴湘学院《园林植物学理论》2023-2024学年第二学期期末试卷
- 东北师范大学《用友财务管理软件应用》2023-2024学年第二学期期末试卷
- 二年级数学有余数的除法(2位数除以1位数)竞赛试题练习题
- 2025年法理学接本试题及答案
- 2025年安庆医药高等专科学校单招职业技能考试题库标准卷
- 2025-2030年中国工业废水处理产业十三五发展规划及战略规划分析报告
- 《抑郁症治疗新进展》课件
- 《天文学导论课件》
- 北京自主招生数学试卷
- 2024年特许权使用协议3篇
- 湖南固体废弃物综合利用和资源循环利用项目可行性研究报告
- 四川省凉山彝族自治州(2024年-2025年小学六年级语文)统编版综合练习(下学期)试卷及答案
- T-GXAS 689-2024 重大基础设施项目涉及风景名胜区选址论证报告编制技术规范
评论
0/150
提交评论