速发365网址是多少-苹果约彩365app下载-be365

Python 学习笔记:获取网络数据

Python 学习笔记:获取网络数据

Retrieving Data over HTTP

Python 内置了 sockets 可以实现与网络连接并通过 Python 提取数据的功能。

socket 是可以提供双向连接的,我们可以对同一个 socket 进行读写操作。比方说,A 对 socket 写入信息,并且将其发送给 socket 连接另一端 B;那么 B 读取 socket 的内容就可以得到 A 的信息。但是这样会有一个问题,比如说, A端并没有发送任何信息,而 B 端一直在尝试读取 socket 的内容,那么 A 端和 B 端只能陷入漫长的等待。所以就引入了通信协议。协议通过规定谁先发送,谁后响应等来规避上述的问题。

import socket

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

mysock.connect(('fakeserver.com', 80)) # connect to server

cmd = 'GET http://fakeserver.com/fake.txt HTTP/1.0\r\n\r\n'.encode()

# send GET command followed by a blank line

mysock.send(cmd)

while True: # receive data and print out

data = mysock.recv(512)

if (len(data) < 1):

break

print(data.decode())

mysock.close()

Retrieving Data with urllib

利用 socket 我们可以与网站服务器,邮件服务器等建立连接。但是在建立连接之前,我们需要查询文档了解通信协议,然后根据协议编写程序。所以相较于 socket 这种黑魔法,我们可以利用更为简单的 Python Package。

利用 urllib.urlopen() 打开网页后,我们就可以读取数据,像读取本地文件一样。

import urllib.request

fhand = urllib.request.urlopen('http://fakeserver.com/fake.txt')

for line in fhand:

#convert UTF-8 to unicode string and print out

print(line.decode().strip())

因为 urllib 使用简洁方便,所以也常用与网络爬虫。网络爬虫除了要网页读取数据以外还需要在 HTML 格式中解释出可用数据,所以除了 urllib 还有另一常用利器就是 BeautifulSoup。

import urllib.request, urllib.parse, urllib.error

from bs4 import BeautifulSoup

import ssl

# Ignore SSL certificate errors

ctx = ssl.create_default_context()

ctx.check_hostname = False

ctx.verify_mode = ssl.CERT_NONE

html = urllib.request.urlopen('http://fakeserver.com/fake.html', context=ctx).read()

soup = BeautifulSoup(html, 'html.parser')

tags = soup('a')

# Retrieve all of the anchor tags

for tag in tags:

print(tag.get('href', None))

Retrieving Data from XML

在网络交换数据,我们常用的格式有两种,一是 XML; 二是 JSON。

XML 长得就像是 HTML 的近亲,可以看做是树的一种。利用 Python Package ElementTree 我们可以将 XML 文件转换为树,这样可以方便我们后续提取有效的数据。

import xml.etree.ElementTree as ET

data = '''

Jack

+123456789

'''

tree = ET.fromstring(data) # convert xml into a tree

print('Name:', tree.find('name').text)

print('Attr:', tree.find('email').get('office'))

Retrieving Data from JSON

JSON 结构相较于 XML 来说更为简单,所以他的功能就没有那么强大。但是 JSON 有一个优势就是可以直接映射到 Python 的 dictionaries 和 lists 中,非常实用。

我们可以直接利用 Python Package json 来解释 JSON。

import json

data = '''

{

"name" : "Jack",

"phone" : {

"type" : "intl",

"number" : "+123456789"

},

"email" : {

"office" : "yes"

}

}

'''

info = json.loads(data) # convert json into a dictianary

print('Name:', info['name'])

print('Attr:', info['email']['office'])

← 上一篇: dnf角色恢复要多久 DNF角色恢复时间解析
下一篇: “龙虎榜”究竟怎么看?拆解游资席位的操作风格与联动规律 →

相关推荐

《黑神话悟空》九转还魂丹获得方法

《黑神话悟空》九转还魂丹获得方法

2026-06-23 16:11:30 阅读: 108
微信公众号开店的详细步骤及方法

微信公众号开店的详细步骤及方法

2025-07-08 23:37:52 阅读: 1703
荷花代表什么生肖啊

荷花代表什么生肖啊

2025-07-18 09:01:39 阅读: 347
如何在 Minecraft 中制作楼梯 ▷➡️

如何在 Minecraft 中制作楼梯 ▷➡️

2025-08-30 11:49:15 阅读: 8245
ERP如何建立用户 最新实用操作手册

ERP如何建立用户 最新实用操作手册

2026-06-12 11:01:39 阅读: 8237
王者荣耀中耀台词有哪些 耀台词大全

王者荣耀中耀台词有哪些 耀台词大全

2025-10-02 01:48:39 阅读: 9322
微信帐号保护在哪里

微信帐号保护在哪里

2025-07-22 06:59:07 阅读: 4583
[科普中国]

[科普中国]

2025-08-27 06:45:31 阅读: 7373