python 內建了 sockets 可以實現與網路連線並通過 python 提取資料的功能。
socket 是可以提供雙向連線的,我們可以對同乙個 socket 進行讀寫操作。比方說,a 對 socket 寫入資訊,並且將其傳送給 sock 連線另一端 b;那麼 b 讀取 socket 的內容就可以得到 a 的資訊。但是這樣會有乙個問題,比如說, a端並沒有傳送任何資訊,而 b 端一直在嘗試讀取 socket 的內容,那麼 a 端和 b 端只能陷入漫長的等待。所以就引入了通訊協議。協議通過規定誰先傳送,誰後響應等來規避上述的問題。
利用 socket 我們可以與**伺服器,郵件伺服器等建立連線。但是在建立連線之前,我們需要查詢文件了解通訊協議,然後根據協議編寫程式。所以相較於 socket 這種黑魔法,我們可以利用更為簡單的 python package。
利用urllib.urlopen()開啟網頁後,我們就可以讀取資料,像讀取本地檔案一樣。
import urllib.request
fhand = urllib.request.urlopen('')
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('', 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))
在網路交換資料,我們常用的格式有兩種,一是 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'))
json 結構相較於 xml 來說更為簡單,所以他的功能就沒有那麼強大。但是 json 有乙個優勢就是可以直接對映到 python 的 dictionaries 和 lists 中,非常實用。
我們可以直接利用 python package json 來解釋 json。
import json
data = '''
,"email" :
}'''
info = json.loads(data) # convert json into a dictianary
print('name:', info['name'])
print('attr:', info['email']['office'])
作者:yuki
出處:
python獲取網路資料 Python讀取網路資料
很多時候,程式並不能直接展示本地檔案中的資料,此時需要程式讀取網路資料,並展示它們。前面已經介紹了 python 的網路支援庫 urllib,通過該庫下的 request 模組可以非常方便地向遠端傳送 http 請求,獲取伺服器響應。因此,本程式的思路是使用 urllib.request 向 lis...
獲取網路資料
j2se實現網路的獲取 btn text 顯示網路 android layout width fill parent android layout height wrap content android text string btn text android id id showbtn andro...
網路獲取資料
1 http協議定義 www是以internet作為傳輸媒介的乙個應用系統,www網上基本的傳輸單位是web網頁。www的工作是基於客戶機 伺服器計算模型,由web瀏覽器和web伺服器構成,兩者之間採用超文字傳輸協議http進行通訊。http協議時基於tcp ip協議之上的協議,是web瀏覽器和we...