IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python for Everybody】12 Network Programming -> 正文阅读

[Python知识库]【Python for Everybody】12 Network Programming

TCP Connection / Sockets

在这里插入图片描述

TCP Port Number

在这里插入图片描述
In a client-server application on the web using sockets, server must come up first
在这里插入图片描述

Sockets in Python

调用socket包创建socket
在这里插入图片描述
从网页中获取文件,会返回metadata和网页内容

# open a socket,send a command, retrieve the data 
import socket

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #这一步还没有连接socket,是将socket视为file handle
mysock.connect(('data.pr4e.org', 80)) #通过网络连接目的地域名,第二个参数是port number;在cmd中输入telnet命令也可以实现
cmd = 'GET http://data.pr4e.org/romeo.txt HTTP/1.0\r\n\r\n'.encode()# 输入url后必须空一行,separates the HTTP headers from the body of the HTTP document;encode()是将网页中的Unicode格式转化为python中默认的utf-8格式
mysock.send(cmd) #发送utf-8 bytes

while True:
    data = mysock.recv(512)#请求获得512 characters,像read a file一样
    if len(data) < 1:
        break #如果没文件就退出
    print(data.decode(),end='')

mysock.close()

Application Protocol

在这里插入图片描述
在这里插入图片描述
HTTP的最重要的方面是规定了 Which application talks first? The client or server?
在这里插入图片描述
在这里插入图片描述
URL(Uniform Resource Locator)由 Protocol, host, and document三部分组成
在这里插入图片描述
when a browser uses the HTTP protocol to load a file or page from a server and display it in the browser, which is called The Request/Response Cycle

Write a Web Browser

在这里插入图片描述
在这里插入图片描述

Unicode and UTF-8

ASCII
ASCII

在这里插入图片描述
print(ord(‘’))函数查看ASCII码的值
Unicode
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
python3中string的格式都是Unicode
Python Strings to Bytes
在这里插入图片描述

urllib

在这里插入图片描述
采用urllib可以将网页内容像file一样处理
在这里插入图片描述
用于阅读网页
在这里插入图片描述

import urllib.request

fhand = urllib.request.urlopen('http://data.pr4e.org/romeo.txt')# make socket calls,输出tring,比较像file handle
for line in fhand:
    print(line.decode().strip()) #不会输出headers,只输出contents;记得加decode()去legitimate string

用于获取网页中的链接
在这里插入图片描述

When you click on an anchor tag in a web page like below, what HTTP request is sent to the server?


<p>Please click <a href="page1.htm">here</a>.</p>
==> GET

Web Scraping

在这里插入图片描述
有些网站不能爬,得看条款
在这里插入图片描述
BeautifulSoup的目的:It repairs and parses HTML to make it easier for a program to understand

import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup  # 必须把bs4文件放在和code同一个文件夹里
import ssl

# Ignore SSL certificate errors,为了解决HTTPS问题
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input('Enter - ')
html = urllib.request.urlopen(url, context=ctx).read() #.read()是为了把网页读取return成一个整的文档
soup = BeautifulSoup(html, 'html.parser') # html网页可能存在很多混乱和错误,BeautifulSoup的作用是将其返回为一个clean object

# Retrieve all of the anchor tags
tags = soup('a') # return a list of all the anchor tags (<a..) in the HTML from the URL
for tag in tags:
    print(tag.get('href', None))

# Retrieve all of the anchor tags
tags = soup('a')
for tag in tags:
   # Look at the parts of a tag
   print 'TAG:',tag
   print 'URL:',tag.get('href', None)
   print 'Contents:',tag.contents[0] #将tag的子节点以list的方式输出
   print 'Attrs:',tag.attrs #属性attribute,是一个字典,默认为空
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:30:58  更:2022-07-21 21:31:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:32:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码