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两个版本这两个版本在语法等方面有一定的区别 ...
随机推荐
- transform复习之图片的旋转木马效果
效果示意图 <!DOCTYPE><html><head><meta http-equiv="Content-Type" content=& ...
- Spring MVC的配置和使用
Spring MVC的配置和使用 笔记仓库:https://github.com/nnngu/LearningNotes Spring MVC需要的jar包 文章中 Spring MVC 使用的版本是 ...
- C#开发短信发送
//需要用到的命名空间 using System.Net;using System.IO;using System.Text;//调用时只需要把拼成的URL传给该函数即可.判断返回值即可public ...
- [Python Study Notes] 变量/编码/注释
Ps:我这里选择的IDE为pycharm,个人感觉还是比较好用的. 1.变量 声明变量/赋值变量 #_*_ coding:utf-8 _*_ # author = "liu" ab ...
- Jenkins 不同角色不同视图及不同权限设置
由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Strategy Plugin,介绍页面:https://wiki.jenki ...
- php用正则匹配出图片img标签中的src路径(兼容)
用php抓图片是个常用的需求,下面提供一个比较兼容的正则表达式来实现php抓取出页面.字符串中所有图片的src. 下面是一个范例,能匹配各种标签格式写法的图片,不管src在什么地方,还是单引号.双引号 ...
- ss-redir 的 iptables 配置(透明代理)
透明代理指对客户端透明,客户端不需要进行任何设置就使用了网管设置的代理规则 创建 /etc/ss-redir.json 本地监听 7777 运行ss-redir -v -c /etc/ss-redir ...
- Vue.js依赖收集
写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ...
- http权威指南笔记
请求报文 响应报文GET /test/hi.txt HTTP/1.0 起始行 HTTP/1.0 200 OKAccept: text/* 首部 Content-type: text/plainAcce ...
- jstl c标签 ”test does not support runtime expressions“
将jstl 的uri <%@ taglib prefix="c" uri="http://Java.sun.com/jstl/core" %>(没有 ...