玩转socket(三)
SOCK_STREAM和SOCK_DGRAM到底有什么区别?上一节《套接字有哪些类型》提到,Stream Sockets就是SOCK_STREAM,它基于TCP协议;Datagram Sockets就是SOCK_DGRAM,它基于UDP协议。这给大家造成一种印象,Stream Sockets就是可靠连接,Datagram Sockets就是不可靠通信,实际情况真的如此吗?
另外,不管哪种数据传输方式,都得通过整个Internet网络的物理线路将数据传出去,从这个层面理解,所有的socket都是有物理连接的,为什么还有无连接的socket呢?
从字面上理解,Stream Sockets好像有一条管道,它连接发送端和接收端,数据包通过这条管道来传输。当然,两台计算机在通信之前必须先搭建好管道。Datagram Sockets像是无头苍蝇乱撞,数据包从发送端到接收端没有固定的路线,爱怎么走就怎么走,只要能到达就行。每个数据包都比较自私,不和别人分享自己的线路,但是大家都能殊途同归,到达接收端。
上图是一个简化的互联网模型,H1->H6表示计算机,A->E表示路由器,发送端发送的 ...
玩转socket(二)
套接字有哪些类型?socket有哪些类型?这个世界上有很多种套接字(socket),比如DAPRA Internet地址(Internet套接字)、本地节点的路径名(Unix套接字)、CCITT X.25地址(X.25套接字)等。本文只讨论Internet套接字。根据数据的传输方式,可以将Internet套接字分成两种类型(其实还有很多种)。通过socket()函数创建链接时,必须告诉它使用哪种数据传输方式。
流格式套接字(SOCK_STREAM)
数据报格式套接字(SOCK_DGRAM)
Stream SocketsStream Sockets也叫 “面向连接的套接字” ,在代码中使用SOCK_STREAM表示。
Stream Sockets是一种可靠的、双向的通信数据流,数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送
Stream Sockets有以下几个特征:
数据在传输过程中不会消失
数据是按照顺序传输的
数据的发送和接收不是同步的(也称“不存在数据边界”)
可以将Stream Sockets比喻成一条传送带,只要传送带本身没问题(不会断网),就能保证 ...
玩转socket(一)
什么是socket?socket的原意是“插座”,在计算机通信领域,socket被翻译成“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
把充电器插头插到插座上就能从电网获取电力供应给手机充电,同样的,为了与远程计算机进行数据传输,需要连接到互联网,而socket就是用来连接到互联网的工具。
socket的典型应用就是Web服务器和浏览器:浏览器获取用户输入的URL,向服务器发起请求,服务器分析接收到的URL,将对应的网页的内容返回给浏览器,浏览器再经过解析和渲染,就将文字、图片、视频等元素呈现给用户。
UNIX/Linux中的socket是什么?在UNIX/Linux系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。
UNIX/Linux中的一切都是文件
为了表示和区分已经打开的文件,UNIX/Linux会给每个文件分配一个ID,这个ID就是一个整数,被称为文件描述符。例如:
通常用0来表示标准输入文件(std ...
HNUST之学子如何免费使用pycharm等jetbrains系列工具
湖南科大学子如何免费使用jetbrains系列开发工具实际上这种方法各高校普适,但本文只针对湖南科大学子。我们以pycharm为例。
1.进入学生申请网址点我白嫖
2.填写信息点击立即申请信息如实填写,最重要的步骤是把学校的邮箱写进去。那么如何申请科大的邮箱呢?
打开微信
打开湖南科技大学企业号
打开网络信息服务
进入科大邮箱服务
申请邮箱
更改密码完成如上步骤后,我们就拥有了科大邮箱。邮箱地址为:学号@mail.hnust.edu.cn申请完后,如实填写邮箱地址,然后进行申请。申请后,官网会向我们申请的科大邮箱发一份邮件,进行验证。此时我们需要打开腾讯企业邮箱,输入邮箱地址和密码,进入验证。大功告成!!!3.打开软件,开始白嫖
统计学习方法之监督学习(二)
统计学习的分类统计学习或机器学习是一个范围宽阔、内容繁多、应用广泛的领域,并不存在(至少现在不存在)一个统一的理论体系涵盖所有内容。下面从几个角度对统计学习方法进行分类。
基本分类监督学习监督学习是指从标注数据中学习预测模型的机器学习的问题。标注数据表示输入输出的对应关系,预测模型对给定的输入产生相应的输出。监督学习的本质是学习输入到输出的映射的统计规律
统计学习方法之监督学习(一)
统计学习统计学习的特点统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习。= =。看了上面的定义,是不是觉得一团浆糊呢。但其实说的已经很清楚了,在这里我用自己的话总结一下。统计学习就是用数据建模型,再用建出来的模型对数据进行分析和预测的一个看起来高大上实则学起来也就那么回事的一门学科。
统计学习有诸多特点,在这里作简单概括:
统计学习以计算机和网络为平台,是建立在计算机和网络上的
统计学习以数据为研究对象,是数据驱动的学科
统计学习的目的是对数据进行预测与分析
统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析
统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科。并且在发展中逐步形成独自的理论体系与方法论。
统计学习的对象统计学习的研究对象是数据。它从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析与预测中去。统计学习关于数据的基本假设是同类数据具有一定的统计规律,这是统计学习的前提
统计学习的目的统计学习用于对数据的预测与分析,特别是对 ...
python之正则表达式
学习基础:Python之正则表达式(引用runoob的正则表达式篇)正则表达式是一个特殊的字符序列,它能方便我们检查一个字符串是否与某种模式匹配。Python的re模块使Python语言拥有全部的正则表达式功能。
re.match函数re.match函数尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。函数语法:
1re.match(pattern, string, flags=0)
函数参数说明:
参数
描述
pattern
匹配的正则表达式
string
要匹配的字符串
flags
标志位,用于控制正则表达式的匹配方式
匹配成功re.match方法返回一个匹配的对象,否则返回None。可以使用group(num)或groups()匹配对象函数来获取匹配表达式。
匹配对象方法
描述
group(num=0)
匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组
groups()
返回一个包含所有小组字符串的元组,从1到所含的小组号
实例: ...
爬虫之数据解析
爬虫之数据解析上一节学习了requests模块的使用,这一节学习数据解析。
数据解析分类
正则表达式
bs4
xpath(重要)数据解析原理概述
解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储
进行指定标签的定位
标签或者标签对应的属性中存储的数据值进行提取(解析)聚焦爬虫
编码流程:
指定url
发起请求
获取响应数据
数据解析
持久化存储学习基础:Python之正则表达式请移步至另一章:python之正则表达式使用bs4进行数据解析数据解析原理:
标签定位
提取标签、标签属性中存储的数据值bs4数据解析原理:
实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中
通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取
数据解析步骤:环境安装:
pip install bs4
pip install lxmlbs4数据解析步骤:
导包,from bs4 import BeautifulSoup
实例化bs4对象的两种方法
1.将本地html文档中的数据加载到该对象中
12fp = open('./苏州 ...
爬虫之request模块的学习
基础知识
统一资源定位符(英语:Uniform Resource Locator,缩写:URL;或称统一资源定位器、定位地址、URL地址,俗称网页地址或简称网址)是因特网上标准的资源的地址(Address),如同在网络上的门牌。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址,现在它已经被万维网联盟编制为因特网标准RFC 1738.
requests模块:python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。
如何使用requests模块呢?
指定URL
发起请求
获取响应数据
持久化存储
环境安装:
pip install requests
利用pycharm,进入File->Settings->Project->Project Interpreter,安装
利用pycharm,新建.py文件,敲入 import requests,将光标移到红线上方,点击install安装
实战编码:胡小宁的github
request_test1
request_test2
象牙塔里的思考
岁月无声。大一刚入学,就听闻教我们《离散数学》的老师是个在学术界叱诧风云的老教授。此人颇为奇怪,从不会阿谀奉承,是学院里为数不多的不带着院长发paper的人。有一次在课上,学院领导催他去听一场国际前沿的讲座,只见他会心一笑,吸了一口到半截的香烟,说:“我就是国际前沿”。有很多老师会点到,这是一种对我们的不信任,亦或许是对自身授课水平的不信任。何教授上课是从来都不会点到的,因为刚开课他就说过:“你们可以来,也可以不来,这是你们的事”。后来,我就真的没再去听他的课了,不得不说,这是一种遗憾。之所以提到何教授,是因为他的求学经历。如果自己对一个人很崇拜,那就一定会去了解他。开课不久,我就查到了他的求学经历。先是在本校读的书,然后去了华南师范大学读硕士,接着去了中山大学读博士,又在苏州大学做了几年博士后。看罢,我就开始幻想能同何教授一样一步步地爬上中国高等教育金字塔的顶端。突然的,一个问题同墨滴入清水一般搅碎了我如痴如醉的幻想。读这么多书的意义何在呢?我想起来自己高考前的心理,“只要能考上好大学,就一定要发个朋友圈好好炫耀一番!”当时我真是这么想的,可以说贯穿了我整个高中思想的魑魅魍魉就是它。 ...