国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python如何獲取網(wǎng)絡(luò)數(shù)據(jù)

瀏覽:37日期:2022-06-22 17:35:58
Retrieving Data over HTTP

Python 內(nèi)置了 sockets 可以實(shí)現(xiàn)與網(wǎng)絡(luò)連接并通過 Python 提取數(shù)據(jù)的功能。

socket 是可以提供雙向連接的,我們可以對(duì)同一個(gè) socket 進(jìn)行讀寫操作。比方說,A 對(duì) socket 寫入信息,并且將其發(fā)送給 socket 連接另一端 B;那么 B 讀取 socket 的內(nèi)容就可以得到 A 的信息。但是這樣會(huì)有一個(gè)問題,比如說, A端并沒有發(fā)送任何信息,而 B 端一直在嘗試讀取 socket 的內(nèi)容,那么 A 端和 B 端只能陷入漫長(zhǎng)的等待。所以就引入了通信協(xié)議。協(xié)議通過規(guī)定誰(shuí)先發(fā)送,誰(shuí)后響應(yīng)等來規(guī)避上述的問題。

import socketmysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)mysock.connect((’fakeserver.com’, 80)) # connect to servercmd = ’GET http://fakeserver.com/fake.txt HTTP/1.0rnrn’.encode()# send GET command followed by a blank linemysock.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 我們可以與網(wǎng)站服務(wù)器,郵件服務(wù)器等建立連接。但是在建立連接之前,我們需要查詢文檔了解通信協(xié)議,然后根據(jù)協(xié)議編寫程序。所以相較于 socket 這種黑魔法,我們可以利用更為簡(jiǎn)單的 Python Package。

利用 urllib.urlopen() 打開網(wǎng)頁(yè)后,我們就可以讀取數(shù)據(jù),像讀取本地文件一樣。

import urllib.requestfhand = 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())

因?yàn)?urllib 使用簡(jiǎn)潔方便,所以也常用與網(wǎng)絡(luò)爬蟲。網(wǎng)絡(luò)爬蟲除了要網(wǎng)頁(yè)讀取數(shù)據(jù)以外還需要在 HTML 格式中解釋出可用數(shù)據(jù),所以除了 urllib 還有另一常用利器就是 BeautifulSoup。

import urllib.request, urllib.parse, urllib.errorfrom bs4 import BeautifulSoupimport ssl# Ignore SSL certificate errorsctx = ssl.create_default_context()ctx.check_hostname = Falsectx.verify_mode = ssl.CERT_NONEhtml = urllib.request.urlopen(’http://fakeserver.com/fake.html’, context=ctx).read()soup = BeautifulSoup(html, ’html.parser’)tags = soup(’a’)# Retrieve all of the anchor tagsfor tag in tags: print(tag.get(’href’, None))Retrieving Data from XML

在網(wǎng)絡(luò)交換數(shù)據(jù),我們常用的格式有兩種,一是 XML; 二是 JSON。

XML 長(zhǎng)得就像是 HTML 的近親,可以看做是樹的一種。利用 Python Package ElementTree 我們可以將 XML 文件轉(zhuǎn)換為樹,這樣可以方便我們后續(xù)提取有效的數(shù)據(jù)。

import xml.etree.ElementTree as ETdata = ’’’ <person> <name>Jack</name> <phone>+123456789</phone> <email office='yes'/> </person> ’’’tree = ET.fromstring(data) # convert xml into a treeprint(’Name:’, tree.find(’name’).text)print(’Attr:’, tree.find(’email’).get(’office’))Retrieving Data from JSON

JSON 結(jié)構(gòu)相較于 XML 來說更為簡(jiǎn)單,所以他的功能就沒有那么強(qiáng)大。但是 JSON 有一個(gè)優(yōu)勢(shì)就是可以直接映射到 Python 的 dictionaries 和 lists 中,非常實(shí)用。

我們可以直接利用 Python Package json 來解釋 JSON。

import jsondata = ’’’ {'name' : 'Jack','phone' : { 'type' : 'intl', 'number' : '+123456789'},'email' : { 'office' : 'yes'} }’’’info = json.loads(data) # convert json into a dictianaryprint(’Name:’, info[’name’])print(’Attr:’, info[’email’][’office’])

作者:Yuki出處:https://www.cnblogs.com/yukiwu/

以上就是python如何獲取網(wǎng)絡(luò)數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于python獲取網(wǎng)絡(luò)數(shù)據(jù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产精品久久久久久久久久日本 | 中文字幕在线观看日韩 | 亚洲国产成人私人影院 | 国产精品久久毛片蜜月 | 国产毛片一级 | 色哟哟国产成人精品 | 亚洲视频偷拍自拍 | 欧美性另类69xxxx极品 | 国产精品美女免费视频大全 | 精品国产日韩久久亚洲 | 狠狠色丁香婷婷综合久久片 | 亚洲影院手机版777点击进入影院 | 亚洲国产人成中文幕一级二级 | 成人老司机深夜福利久久 | 99精品视频免费 | 欧洲成人r片在线观看 | 99免费在线播放99久久免费 | 成年男人午夜片免费观看 | 欧美一区二区三区免费 | 国产一级爱做片免费观看 | 国产精品国产精品国产三级普 | 国产一级一国产一级毛片 | 杨幂精品国产专区91在线 | 九九久久精品视频 | 精品亚洲一区二区三区 | 特级欧美午夜aa毛片 | 亚洲天堂影院在线观看 | 免费在线精品视频 | 无码免费一区二区三区免费播放 | 欧美成人性动漫在线观看 | 午夜国产高清精品一区免费 | 久久久国产99久久国产一 | 国产视频在线免费观看 | 韩国免费一级成人毛片 | 美女黄页网站免费进入 | 看真人视频一级毛片 | 欧美色成人综合 | 成人黄色免费观看 | 深夜福利网址 | 欧美黄视频网站 | 亚洲精品一区二区四季 |