最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年04月09日 14:16:59   作者:yukiwu  
這篇文章主要介紹了python如何獲取網(wǎng)絡(luò)數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

Retrieving Data over HTTP

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

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

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

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

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

因?yàn)?urllib 使用簡潔方便,所以也常用與網(wǎng)絡(luò)爬蟲。網(wǎng)絡(luò)爬蟲除了要網(wǎng)頁讀取數(shù)據(jù)以外還需要在 HTML 格式中解釋出可用數(shù)據(jù),所以除了 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

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

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

import xml.etree.ElementTree as ET
data =  '''
            <person>
            <name>Jack</name>
            <phone>+123456789</phone>
            <email office="yes"/>
            </person> 
        '''
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 結(jié)構(gòu)相較于 XML 來說更為簡單,所以他的功能就沒有那么強(qiáng)大。但是 JSON 有一個優(yōu)勢就是可以直接映射到 Python 的 dictionaries 和 lists 中,非常實(shí)用。

我們可以直接利用 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'])

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

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

相關(guān)文章

  • Matplotlib中%matplotlib inline如何使用

    Matplotlib中%matplotlib inline如何使用

    這篇文章主要介紹了Matplotlib中%matplotlib inline如何使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python利用pynput實(shí)現(xiàn)劃詞復(fù)制功能

    Python利用pynput實(shí)現(xiàn)劃詞復(fù)制功能

    這篇文章主要為大家想詳細(xì)介紹了Python如何利用pynput實(shí)現(xiàn)劃詞復(fù)制功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • Python中利用sqrt()方法進(jìn)行平方根計(jì)算的教程

    Python中利用sqrt()方法進(jìn)行平方根計(jì)算的教程

    這篇文章主要介紹了Python中利用sqrt()方法進(jìn)行平方根計(jì)算的教程,是Python學(xué)習(xí)的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • 淺析Python中的套接字編程

    淺析Python中的套接字編程

    不可否認(rèn),互聯(lián)網(wǎng)已成為“存在之魂”,其活動以“連接”或“網(wǎng)絡(luò)”為特征。使用套接字的最關(guān)鍵的基礎(chǔ)之一,使這些網(wǎng)絡(luò)成為可能。本文涵蓋了有關(guān)使用Python進(jìn)行套接字編程的所有領(lǐng)域。套接字可以幫助您建立這些連接,而Python無疑可以簡化連接
    2021-06-06
  • 利用Python實(shí)現(xiàn)繪制論文中的曲線圖

    利用Python實(shí)現(xiàn)繪制論文中的曲線圖

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)繪制論文中需要的曲線圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • python連接遠(yuǎn)程ftp服務(wù)器并列出目錄下文件的方法

    python連接遠(yuǎn)程ftp服務(wù)器并列出目錄下文件的方法

    這篇文章主要介紹了python連接遠(yuǎn)程ftp服務(wù)器并列出目錄下文件的方法,實(shí)例分析了Python使用pysftp模塊的技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • Python實(shí)現(xiàn)求一個集合所有子集的示例

    Python實(shí)現(xiàn)求一個集合所有子集的示例

    今天小編就為大家分享一篇Python 實(shí)現(xiàn)求一個集合所有子集的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 如何用python免費(fèi)看美劇

    如何用python免費(fèi)看美劇

    在本篇文章里小編給大家整理的是關(guān)于如何用python免費(fèi)看美劇的方法內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-08-08
  • 詳解Python中的from..import絕對導(dǎo)入語句

    詳解Python中的from..import絕對導(dǎo)入語句

    絕對導(dǎo)入其實(shí)非常簡單,即是用from語句在import前指明頂層package名,下面我們通過兩個例子來詳解Python中的from..import絕對導(dǎo)入語句
    2016-06-06
  • 詳細(xì)解讀Python中的json操作

    詳細(xì)解讀Python中的json操作

    json操作是最為基本的、最為常用的,Python自帶的json模塊就可以滿足大部分應(yīng)用場景,而且使用起來極為簡單,下面這篇文章主要給大家介紹了關(guān)于Python中json操作的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評論

扬州市| 沾益县| 阿拉尔市| 马鞍山市| 镇坪县| 盘锦市| 孝昌县| 化德县| 汽车| 怀仁县| 阿拉善右旗| 衡阳县| 井研县| 九龙县| 安顺市| 友谊县| 襄汾县| 望谟县| 兰州市| 江永县| 定兴县| 伊金霍洛旗| 台中县| 彭阳县| 宁波市| 仁怀市| 偏关县| 绵竹市| 岐山县| 德阳市| 抚远县| 莒南县| 县级市| 依兰县| 温州市| 沙洋县| 武夷山市| 阳山县| 靖西县| 广德县| 仙桃市|