【Web信息处理】Web数据获取-ws01课-爬虫基本架构
【Web信息处理】Web数据获取
- Web数据获取01
- 网络数据获取原理
- HTTP协议
- 爬虫需要解决哪些问题:
- 检查某个URL是否已经被抓过了
- Bloom filter
- A high level view of a web crawler
- 信息标记与提取方法
- 信息的标记
- 信息标记的作用
- 信息标记的三种形式
- XML(Extensible Markup Language)
- JSON(JavsScript Object Notation)
- YAML(YAML Ain’t Markup Language)
- 三种信息形式的比较
- XML实例
- JSON实例
- YAML实例
- 信息提取的一般方法
- 方法一:完整解析信息的标记形式,再提取关键信息
- 方法二:无视标记形式,直接搜索关键信息
- 融合方法:结合形式解析与搜索方法,提取关键信息
- 网络爬虫的限制
Web数据获取01
Anaconda
Installing on Windows
https://docs.anaconda.com/anaconda/install/windows/
网络数据获取原理
HTTP协议
HTTP,Hypertext Transfer Protocol,超文本传输协议
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议
HTTP协议采用URL作为定位网络资源的标识,URL格式如下:
http://host[:port][path]
host: 合法的Internet主机域名或IP地址
port: 端口号,缺省端口为80
path: 请求资源的路径
HTTP协议对资源操作
GET 请求获取URL位置的资源
POST 请求向URL位置的资源后附加新的数据
HTTP URL的理解:
URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源
HTTP协议对资源的操作
通过URL和命令管理资源,操作独立无状态,网络通道及服务器成为了黑盒子
爬虫需要解决哪些问题:
HTTP请求怎么构造并向服务器发送获取数据?
如何大量从网络中获取数据?
获取到的数据如何解析为结构化数据?
如何高效的获取数据?
问题:
同步和异步,阻塞和非阻塞调用是?
网页为节点
网页中的HyperLink为有向边
Crawl == 图遍历, right?
检查某个URL是否已经被抓过了
在将一个新的URL (规格化后的)放到工作池之前
- 要很快,不要在这里形成性能瓶颈(检查将要访问磁盘)
符合条件(即未被访问过)的URLs放到crawler的任务中
优化方法
URL用fingerprint (如MD5)
来记录,减少内存开销
利用访问的时空局部性 – Cache
海量数据的高效率查找表
- B-tree
- Bloom filter
Bloom filter
Bloom Filter
就会告诉你,w在集合
之中,实际上这里是误报,w并不在集合之中
A high level view of a web crawler
- Fetcher:Fetch a page 取一个界面
- Extractor:get all urls in the former page 寻找其他url引用
- Writer:add the urls into the database
- PostProcessor:Read/Write URL’s
HTML通过预定义的<>…</>标签
形式组织不同类型的信息
信息标记与提取方法
信息的标记
信息标记的作用
- 标记后的信息可形成信息组织结构,增加了信息维度
- 标记的结构与信息一样具有重要价值
- 标记后的信息可用于通信、存储或展示
- 标记后的信息更利于程序理解和运用
信息标记的三种形式
XML(Extensible Markup Language)
Extensible Markup Language
空元素的缩写形式:
<img src=“china.jpg” size=“10” />
注释书写形式:
<!-- This is a comment, very useful -->
<name> … </name>
<name />
<!-- -->
JSON(JavsScript Object Notation)
JavsScript Object Notation
有类型的键值对 key:value
多值用[,]
组织:
键值对嵌套用{,}
:
YAML(YAML Ain’t Markup Language)
无类型键值对 key:value
缩进表达所属关系:
-
表达并列关系:
|
表达整块数据, #
表示注释
text: | # 学 校 介 绍
哈尔滨工业大学,简称哈工大,创建于1920年,隶属中华人民共和国工业和信息化部,是一所以理工为主,理、工、文、管、生命相结合,多学科、开放式的研究型高校,为中国C9联盟成员之一,是首批中国“211工程”、首批九所985工程重点建设的院校之一。拥有哈尔滨、威海和深圳三大校区,已建成一校三区的“大哈工大”格局。
三种信息形式的比较
XML | 最早的通用信息标记语言,可扩展性好,但繁琐 | Internet上的信息交互与传递 |
---|---|---|
JSON | 信息有类型,适合程序处理(js),较XML简洁 | 移动应用云端和节点的信息通信,无注释 |
YAML | 信息无类型,文本信息比例最高,可读性好 | 各类系统的配置文件,有注释易读 |
XML实例
<person><firstName>Tian</firstName><lastName>Song</lastName><address><streetAddr>中关村南大街5号</streetAddr><city>北京市</city><zipcode>100081</zipcode></address><prof>Computer System</prof><prof>Security</prof>
</person>
JSON实例
{“firstName” : “Tian” ,“lastName” : “Song” ,“address” : {“streetAddr” : “中关村南大街5号” , “city”: “北京市” , “zipcode” : “100081”},“prof” : [ “Computer System” , “Security” ]
}
YAML实例
firstName : Tian
lastName : Song
address :streetAddr : 中关村南大街5号 city : 北京市zipcode : 100081
prof :
-Computer System
-Security
信息提取的一般方法
从标记后的信息中提取所关注的内容
XML JSON YAML
(标记, 信息)
方法一:完整解析信息的标记形式,再提取关键信息
XML JSON YAML
需要标记解析器,例如:bs4库的标签树遍历
- 优点:信息解析准确
- 缺点:提取过程繁琐,速度慢
方法二:无视标记形式,直接搜索关键信息
搜索
对信息的文本查找函数即可
- 优点:提取过程简洁,速度较快
- 缺点:提取结果准确性与信息内容相关\
融合方法:结合形式解析与搜索方法,提取关键信息
XML JSON YAML 搜 索
需要标记解析器及文本查找函数
网络爬虫的限制
• 来源审查:判断User-Agent进行限制
检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问
• 发布公告:Robots协议
Robots Exclusion Standard,网络爬虫排除标准
告知所有爬虫网站的爬取策略,要求爬虫遵守
• 网络爬虫:
自动或人工识别robots.txt,再进行
• 内容爬取 约束性:
Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险
原则:类人行为可不参考Robots协议
【Web信息处理】Web数据获取-ws01课-爬虫基本架构相关推荐
- Asp.Net Web API 2第七课——Web API异常处理
Asp.Net Web API 2第七课--Web API异常处理 原文:Asp.Net Web API 2第七课--Web API异常处理 前言 阅读本文之前,您也可以到Asp.Net Web AP ...
- “阿一web标准学堂”第1课:web标准概述(附视频、课件、代码下载)
阿一web标准学堂 前言 大家好,我是阿一,杨正祎.今天<阿一web标准学堂>就要开讲了,欢迎大家来学习讨论哦. <阿一web标准学堂>是一套面向web标准初学者的视频系列.虽 ...
- Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)...
原文:Asp.Net Web API 2第十七课--Creating an OData Endpoint in ASP.NET Web API 2(OData终结点) 前言 很久没更新博客了,加上刚过 ...
- asp.net MVC3 无法打开项目文件“E:\我们的项目\Project\HeatingMIS.Web\HeatingMIS.Web.csproj”。此安装不支持该项目类型。...
在vs中打开mvc3项目,虽然装了mvc3,但是还是会遇到莫名其妙的错误,这是我在做开发的时候遇到的一个问题,附带解决方案,和大家分享一下 问题描述:无法打开项目文件"E:\我们的项目\Pr ...
- jsp到java xml配置,JSP中web配置:web.xml
# re: JSP中web配置:web.xml 2007-07-02 12:24 和田雨 - http://java.sun.com/xml/ns/j2ee" xmlns:j2ee=&quo ...
- 网页从web服务器受到的威胁,[多选] Web从web服务器方面和浏览器方面受到的威胁主要来自()。...
[多选] Web从web服务器方面和浏览器方面受到的威胁主要来自(). 更多相关问题 [多选] 多天线技术中,主要的增益包括:() [多选] 关于LTETDD帧结构,哪些说法是正确的() [多选] 参 ...
- 从Adobe Photoshop CC 2018的“新建Web”看Web网页常见分辨率
从Adobe Photoshop CC 2018的"新建Web"看Web网页常见分辨率 试用了Adobo Photoshop CC 2018,看一下Web页面分辨了大小默认设计. ...
- 黑马数据库html阶段考试,黑马web阶段web试题学生版.docx
Web 阶段 Web 试题 1. 动态网站的开发技术有 (A) JSP HTML CSS JavaScript 下面哪个请求头信息可以实现防盗链 (C) Location Refresh Refere ...
- Java web之web.xml配置详解
什么是web.xml web.xml是web项目的配置文件,一般的web工程都会用到web.xml来配置,方便大型开发.web.xml主要用来配置Filter,Listener,Servlet等.但是 ...
最新文章
- Android 常用的地球经纬度转换公里(km)计算工具类
- 数据结构与算法 / 队列(queue)
- SpringMVC使用AOP
- 锅巴H264播放器地址和说明
- pca图解读_干货!手把手一步一步解读PCA分析,逃学博士尽力了!
- 男子拒绝春节带电脑回家工作被开除,最后结果十分舒适...
- VR技术给我们的生活带来哪些影响
- python爬取代理IP并进行有效的IP测试
- 使用table标签制作常用的html表格
- JNI详解---从不懂到理解
- 沪漂5年,工作这点事儿
- 工作遇坑-Cannot allocate memory问题解决方法
- Java——七种垃圾收集器+JDK11最新ZGC
- EC-PCA: 利润中心记账流程
- Linux Socket编程入门——浅显易懂
- 动物克隆技术应用价值_动物克隆技术论文
- Web 报错 状态码302
- Windows下Pycharm使用pyhive
- Java 服务器与客户端的简单连接
- php基于BS模式的物业管理系统设计与实现毕业设计源码290918