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

您的位置:首頁技術文章
文章詳情頁

python如何獲取網絡數據

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

Python 內置了 sockets 可以實現與網絡連接并通過 Python 提取數據的功能。

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

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 我們可以與網站服務器,郵件服務器等建立連接。但是在建立連接之前,我們需要查詢文檔了解通信協議,然后根據協議編寫程序。所以相較于 socket 這種黑魔法,我們可以利用更為簡單的 Python Package。

利用 urllib.urlopen() 打開網頁后,我們就可以讀取數據,像讀取本地文件一樣。

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())

因為 urllib 使用簡潔方便,所以也常用與網絡爬蟲。網絡爬蟲除了要網頁讀取數據以外還需要在 HTML 格式中解釋出可用數據,所以除了 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

在網絡交換數據,我們常用的格式有兩種,一是 XML; 二是 JSON。

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

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 結構相較于 XML 來說更為簡單,所以他的功能就沒有那么強大。但是 JSON 有一個優勢就是可以直接映射到 Python 的 dictionaries 和 lists 中,非常實用。

我們可以直接利用 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如何獲取網絡數據的詳細內容,更多關于python獲取網絡數據的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 香蕉久久久久久狠狠色 | 国产一区二区亚洲精品天堂 | 两性色午夜视频免费国产 | 又刺激又黄的一级毛片 | 网红主播大尺度精品福利视频 | 波多结衣一区二区三区 | 久久精品国产一区 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人香蕉久久久久 | 欧美一级淫片a免费播放口aaa | 精品一区二区三区免费观看 | 手机看片国产欧美日韩高清 | 欧美亚洲国产日韩一区二区三区 | 精品亚洲成a人在线播放 | 亚洲人成在线播放网站 | 久草免费新视频 | 一级在线毛片 | 亚欧成人| 狠狠五月深爱婷婷网 | 日韩一级片在线免费观看 | 九九视频免费精品视频免费 | 伊人五月天婷婷琪琪综合 | 日韩字幕一中文在线综合 | 久久免费视频在线 | 国产福利微拍精品一区二区 | 国产一区二区三区高清视频 | 欧美视频在线观看网站 | 久久精品国产99国产精品免费看 | 韩国福利影视一区二区三区 | 精品一区二区在线欧美日韩 | 女人一级一级毛片 | 99九九国产精品免费视频 | 国产初高中生粉嫩无套第一次 | 特级av毛片免费观看 | 亚洲精品国产一区二区三 | 免费亚洲网站 | 美国亚洲成年毛片 | 欧美黑粗特黄午夜大片 | 老司机一级片 | 久久综久久美利坚合众国 | 久久国产香蕉 | 九九99re在线视频精品免费 |