python如何獲取網路資料

2022-09-25 22:24:14 字數 2483 閱讀 4476

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...