注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.8 用urllib读取二进制文件 有时你想获取一个非文本文件,或者说二进制文件,比如图像或视频.这些文件中的数据不用打印出来,但是你可以轻松地用urllib从网络获取一份拷贝到你的硬盘. 打开网络地址,读取并下载整个文档的内容至一个字符串变量(img),然后把文档内容写到本地文件的方式如下: import urllib.request…
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 本书中的许多例子关注的是读取文件并查找数据,但在互联网中还有许多不同信息源. 本章我们将伪装成浏览器用超文本传送协议(HTTP)从网站获取网页,通读并分析它. 12.1 超文本传送协议-HTTP 支撑网页运转的网络协议实际非常简单,在Python中内置了套接字(socket)模块,使得使用套接字创建网络连接并获取数据变得非常容易. 套接字最…
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.9 词汇表 BeautifulSoup: 一个用于分析HTML文档,并从中抓取数据的Python库.它弥补了大部分在浏览器中被忽略的HTML缺陷.你可以从www.crummy.com下载BeautifulSoup代码. port:端口.当你用套接字链接服务器,通常表示正在联系的的服务器应用程序的数字.例如,网页服务使用80端口,电子邮…
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.7 用BeautifulSoup分析HTML 有很多Python库可以帮你分析HTML和抓取数据.每个库都有它们各自的强项和弱点,你可以基于你的需求选择一个. 下面的例子,我们将使用BeautifulSoup来分析一些HTML的输入,并抓取链接信息.你可以从www.crummy.com下载和安装BeautifulSoup代码.你可以在…
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.5 HTML分析和网页抓取 urllib库一项最常用的功能是抓取网页.就是我们编写一个程序,将自己伪装成网页浏览器,在获取网页之后,再以查找模式检索网页中的数据. 以搜索引擎Google为例,它将查看一个网页的源码,然后抽取其中的链接,再用这些链接获取网页.抽取链接,并一直循环.使用这个技巧,Google几乎爬遍网页上的所有页面. G…
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.3 用HTTP协议获取一张图片 在上一节的例子中,我们获取的是一个有换行符的文本文件,并简单的把它显示在屏幕上.同样我们可以用一个小程序通过HTTP协议获取图片.下面这个程序运行时,不是直接在屏幕上显示数据,而是剔除头信息,然后将收到的数据合并保存为一个图片文件.具体代码如下: import socket import time my…
前言 基于网络通信(AF_INET)的socket(套接字)实现了TCP/UDP协议 目录 基于TCP协议的socket 基于UDP协议的socket TCP协议下粘包现象及处理 使用socketserver模块实现高并发 基于TCP协议的socket 服务端 #服务端 from socket import * #AF_INIT(基于网络通信) SOCK_STREAM(TCP协议)(买手机) tcp_server= socket(AF_INET,SOCK_STREAM) #防止端口FIN_WAI…
CSAPP:第十一章 网络编程 11.1 客户端服务器模型11.2 全球IP因特网11.3 套接字接口 11.1 客户端服务器模型   每个网络应用都是基于客户端-服务器模型.采用这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组成.  客户端-服务器模型的基本操作是事务.一个客户端-服务器事务由以下四步组成. 当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务. 服务器收到请求后,解释它,并以适当的方式操作它的资源. 服务器给客户端发送一个响应,并等待下一个请求. 客户端…
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align: middle; } button, input, select, textarea { color: inherit; font: inherit; } input[type="checkbox"], input[type=&quo…
@by Ruth92(转载请注明出处) 第7章 网络编程 Node 只需要几行代码即可构建服务器,无需额外的容器. Node 提供了以下4个模块(适用于服务器端和客户端): net -> TCP dgram -> UDP http -> HTTP https -> HTTPS OSI 模型:由七层组成,分别为物理层.数据链路层.网络层.传输层.表示层.应用层. 一.构建 TCP 服务 TCP TCP(传输控制协议),属于传输层协议,是面向连接的协议. 许多应用层协议基于 TCP 构…