Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)
1.Networked Programs
1.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
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
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)的更多相关文章
- 2003031121-浦娟-python数据分析第三周作业-第一次作业
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...
- 【Python】 第三周:基本数据类型
整数 python整数无限制 二进制:以0b或者0B开头,例如: 0b010,-0B101 八进制:以0o或者0O开头,例如:0o123,-0O456 浮点数 浮点数间运算存在不确定尾数,不是bug ...
- python课程第三周重点记录
1.关于set,set是一个无序且不重复的元素集合 s = set(["ss","dd","pp"]) #创建set s1 = set([& ...
- python预科前三天:计算器知识、Python下载和安装、Pycharm下载安装激活设置、解释型和编译型、git、思维导图、显示隐藏文件、隐藏已知文件扩展名、创建组织、创建项目、提交作业、排BUG技巧
1.计算机组成结构:CPU.硬盘.内存.输入输出设备.主板.电源. 2.硬件之间的协作关系:是CPU运算完后给操作系统.专业术语叫指令. 3.键盘输入a之后发生的事情:键盘-CPU-操作系统-显卡-显 ...
- Python运维三十六式:用Python写一个简单的监控系统
市面上有很多开源的监控系统:Cacti.Nagios.Zabbix.感觉都不符合我的需求,为什么不自己做一个呢? 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 ...
- 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 ...
- 《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 ...
- 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记
第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[
- Python 学习日记(第三周)
知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...
随机推荐
- .NET Core版本七牛云SDK使用
一.问题背景 公司目前正在将一部分的业务从.NET平台准备迁移到.NET Core上去,同时也准备启用docker进行.NET Core的部署,在项目迁移过程中,不可避免的碰到有些SDK只有在.NET ...
- java Mac自动化-java和ant环境搭建
本文旨在帮助读者介绍,如果一个测试工程师拿到了mac本,该如何在本地搭建java和ant环境 其实在几年前,我们还大多使用的是windows本,而且我们也会比较善于使用windows笔记本,但自从ma ...
- 基于Spring Boot,使用JPA动态调用Sql查询数据
在<基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD>,<基于Spring Boot,使用JPA调用Sql Server数据库的存储过程并返回记录集合 ...
- 像我这样优雅地进行Spring整合MongoDB
本文重点是要将mongodb与spring整合到项目中去,在实践中发现问题,追踪问题,然后解决问题. 一.准备 Maven.Spring(spring-data-mongodb) spring Dat ...
- mysql sql_cache缓存使用
有如下规则,如果数据表被更改,那么和这个数据表相关的全部Cache全部都会无效,并删除之.这里"数据表更改"包括: INSERT, UPDATE, DELETE, TRUNCATE ...
- Project support for both iOS 6 and iOS 7
原文:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/S ...
- 借助Maven入手Spring Boot第一个程序
目前网上有不少Spring Boot的入门文章,都很有帮助,本人最近在深入学习Spring Cloud,在搭建第一个Hello World程序时,感觉对于新手而言,介绍文章怎么详细都不为过,因为其中坑 ...
- EntityFramework Core 2.0自定义标量函数两种方式
前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...
- java中public private protected default的区别
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...
- FFMpeg for PHP
PHP使用FFMpeg来转换视频格式.Github上搜索FFMPEG,到https://github.com/PHP-FFMpeg/PHP-FFMpeg. For Windows users : Pl ...