1.Networked Programs


1.Internet

我们现在学习Internet部分,即平时我们浏览器做的事情,之后再学习客服端这部分

2.TCP 传输控制协议

3.Socket

HTTP80端口用来与浏览器沟通

4.Sockets in Python

 mysock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#like file open
#AF_INET refer i'm make an internet socket
#STREAM refer i'm make an stream socket
mysock.connect(('www.py4inf.com',80))
#在我们这个程序和www.py4inf.com的80端口间建立一个Sockets
Python天然支持TCP Sockets
docs.python.org/library/socket.html  

2.From Sockets to Applications


1.HTTP 超文本传输协议

http://www.dr-chuck.com/page1.htm

protocol        host                  document

2.Sockets

Click the Second Page is just a socket

3.Hacking HTTP

用telnet 加 GET去获取网页内容(Win7 默认不带telnet)

每次访问网页都是十几二十个GET,GET html、GET CSS、GET image....

3.Let's Write a Web Browser


1.An HTTP Request in Python

 import socket
mysock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#like file open
#AF_INET refer i'm make an internet socket
#STREAM refer i'm make an stream socket
mysock.connect(('www.py4inf.com',80))
#在我们这个程序和www.py4inf.com的80端口间建立一个Sockets
toSend='GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n'
mysock.send(toSend.encode('ascii'))
whileTrue:
data = mysock.recv(65)#65是buf长度,此处用来设置显示数据时的长度
if(len(data)<1):
break
print(data)
mysock.close()

2.编码错误,及其解决方法

使用encode 进行以下类型转换即可

 toSend='GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n'
mysock.send(toSend.encode('ascii'))

3.Making HTTP Easier With urllib

socket比url更加接近底层,也就是说url更加简单。

socket是 Transport Layer , url是 Application Layer

注:2.x版本python使用import urllib,但3.x版本python使用的是import urllib.request

 import urllib.request
fhand=urllib.request.urlopen('http://www.py4inf.com/code/romeo.txt')
for line in fhand:
print(line.strip())

4.Like a file

urllib turn URLs into files,所以我们可以像操作文件一样操作它
 import urllib.request
fhand=urllib.request.urlopen('http://www.py4inf.com/code/romeo.txt')
counts=dict()
for line in fhand:
words=line.split()
for word in words:
counts[word]=counts.get(word,0)+1
print(counts)

Words:

subtlety 微妙

Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)的更多相关文章

  1. 2003031121-浦娟-python数据分析第三周作业-第一次作业

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...

  2. 【Python】 第三周:基本数据类型

    整数 python整数无限制 二进制:以0b或者0B开头,例如: 0b010,-0B101 八进制:以0o或者0O开头,例如:0o123,-0O456 浮点数 浮点数间运算存在不确定尾数,不是bug ...

  3. python课程第三周重点记录

    1.关于set,set是一个无序且不重复的元素集合 s = set(["ss","dd","pp"]) #创建set s1 = set([& ...

  4. python预科前三天:计算器知识、Python下载和安装、Pycharm下载安装激活设置、解释型和编译型、git、思维导图、显示隐藏文件、隐藏已知文件扩展名、创建组织、创建项目、提交作业、排BUG技巧

    1.计算机组成结构:CPU.硬盘.内存.输入输出设备.主板.电源. 2.硬件之间的协作关系:是CPU运算完后给操作系统.专业术语叫指令. 3.键盘输入a之后发生的事情:键盘-CPU-操作系统-显卡-显 ...

  5. Python运维三十六式:用Python写一个简单的监控系统

    市面上有很多开源的监控系统:Cacti.Nagios.Zabbix.感觉都不符合我的需求,为什么不自己做一个呢? 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 ...

  6. python cookbook第三版学习笔记七:python解析csv,json,xml文件

    CSV文件读取: Csv文件格式如下:分别有2行三列. 访问代码如下: f=open(r'E:\py_prj\test.csv','rb') f_csv=csv.reader(f) for f in ...

  7. 《Using Python to Access Web Data》 Week3 Networks and Sockets 课堂笔记

    Coursera课程<Using Python to Access Web Data> 密歇根大学 Week3 Networks and Sockets 12.1 Networked Te ...

  8. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记

    第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[

  9. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

随机推荐

  1. C++ cin.get及getline的用法

    1.cin.get() 从指定的输入流中提取一个字符,函数的返回值就是这个字符.文件结束符会返回EOF,一般以-1代表EOF. #include<iostream> using names ...

  2. Image Style Transfer:多风格 TensorFlow 实现

    ·其实这是一个选修课的present,整理一下作为一篇博客,希望对你有用.讲解风格迁移的博客蛮多的,我就不过多的赘述了.讲一点几个关键的地方吧,当然最后的代码和ppt也希望对你有用. 1.引入: 风格 ...

  3. 一步一步配置ABP Core Template with Angular

    1.首先去https://aspnetboilerplate.com/Templates下载模板工程,按如下勾选 2.下载后打开工程如下图,并设置Web.host 作为启动项目,rebuild 还原n ...

  4. iOS 应用开发,用户密码存储技术--KeyChain

    文/清雪飘香(简书作者)原文链接:http://www.jianshu.com/p/c41525172aee著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 这次的Xcode 事件,让我 ...

  5. Bootstrap表单验证

    主要用过两个: jqBootstrapValidation: https://github.com/ReactiveRaven/jqBootstrapValidation bootstrapValid ...

  6. Web API 之承载宿主IIS,SelfHost,OwinSelfHost

            Asp.Net WebAPI这个大家应该都不陌生,在我的理解范围中就是数据提供和交换的一个方式,相比与WCF,WS而言,更加的简单轻量,但是在部署web Api的时候,一般往往需要与a ...

  7. Yii如何使用数据库

    1.Yii如何使用数据库 Yii通过数据库访问对象(Database Access Objects,简称DAO)来使用数据库的. DAO建立在"PHP数据对象(PDO)之上,并提供一套面向对 ...

  8. HDU - 2160 递推

    思路:dp(i)表示第i天的猪的数量,g(i)表示第i天新出生的猪的数量,d(i) = d(i-1) * 2 - g(i-2), g(i) = d(i-1) AC代码 #include <cst ...

  9. 关键字final的用法

    final关键字可以用来修饰类.方法和变量. 1.final修饰的类不能被继承. 2.final修饰的方法不能被重写. 3.final修饰的变量是常量,不能修改其值.

  10. rgba 和 IE 的 filter数值转换