欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python網(wǎng)絡(luò)爬蟲之如何獲取網(wǎng)絡(luò)數(shù)據(jù)

本篇內(nèi)容介紹了“Python網(wǎng)絡(luò)爬蟲之如何獲取網(wǎng)絡(luò)數(shù)據(jù)”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、方正ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的方正網(wǎng)站制作公司

使用 Python 獲取網(wǎng)絡(luò)數(shù)據(jù)

使用 Python 語言從互聯(lián)網(wǎng)上獲取數(shù)據(jù)是一項(xiàng)非常常見的任務(wù)。Python 有一個(gè)名為 requests 的庫,它是一個(gè) Python 的 HTTP 客戶端庫,用于向 Web 服務(wù)器發(fā)起 HTTP 請求。

我們可以通過以下代碼使用 requests 庫向指定的 URL 發(fā)起 HTTP 請求:

import requests
response = requests.get('<http://www.example.com>')

其中,response 對象將包含服務(wù)器返回的響應(yīng)。使用 response.text 可以獲取響應(yīng)的文本內(nèi)容。

此外,我們還可以使用以下代碼獲取二進(jìn)制資源:

import requests
response = requests.get('<http://www.example.com/image.png>')
with open('image.png', 'wb') as f:
    f.write(response.content)

使用 response.content 可以獲取服務(wù)器返回的二進(jìn)制數(shù)據(jù)。

編寫爬蟲代碼

爬蟲是一種自動(dòng)化程序,可以通過網(wǎng)絡(luò)爬取網(wǎng)頁數(shù)據(jù),并將其存儲(chǔ)在數(shù)據(jù)庫或文件中。爬蟲在數(shù)據(jù)采集、信息監(jiān)控、內(nèi)容分析等領(lǐng)域有著廣泛的應(yīng)用。Python 語言是爬蟲編寫的常用語言,因?yàn)樗哂泻唵我讓W(xué)、代碼量少、庫豐富等優(yōu)點(diǎn)。

我們以“豆瓣電影”為例,介紹如何使用 Python 編寫爬蟲代碼。首先,我們使用 requests 庫獲取網(wǎng)頁的 HTML 代碼,然后將整個(gè)代碼看成一個(gè)長字符串,使用正則表達(dá)式的捕獲組從字符串提取需要的內(nèi)容。

豆瓣電影 Top250 頁面的地址是 https://movie.douban.com/top250?start=0,其中 start 參數(shù)表示從第幾個(gè)電影開始獲取。每頁共展示了 25 部電影,如果要獲取 Top250 數(shù)據(jù),我們共需要訪問 10 個(gè)頁面,對應(yīng)的地址是 https://movie.douban.com/top250?start=xxx,這里的 xxx 如果為 0 就是第一頁,如果 xxx 的值是 100,那么我們可以訪問到第五頁。

我們以獲取電影的標(biāo)題和評分為例,代碼如下所示:

import re
import requests
import time
import random
for page in range(1, 11):
    resp = requests.get(
        url=f'<https://movie.douban.com/top250?start=>{(page - 1) * 25}',
        headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
    )
    # 通過正則表達(dá)式獲取class屬性為title且標(biāo)簽體不以&開頭的span標(biāo)簽并用捕獲組提取標(biāo)簽內(nèi)容
    pattern1 = re.compile(r'<span class="title">([^&]*?)</span>')
    titles = pattern1.findall(resp.text)
    # 通過正則表達(dá)式獲取class屬性為rating_num的span標(biāo)簽并用捕獲組提取標(biāo)簽內(nèi)容
    pattern2 = re.compile(r'<span class="rating_num".*?>(.*?)</span>')
    ranks = pattern2.findall(resp.text)
    # 使用zip壓縮兩個(gè)列表,循環(huán)遍歷所有的電影標(biāo)題和評分
    for title, rank in zip(titles, ranks):
        print(title, rank)
    # 隨機(jī)休眠1-5秒,避免爬取頁面過于頻繁
    time.sleep(random.random() * 4 + 1)

在上述代碼中,我們通過正則表達(dá)式獲取標(biāo)簽體為標(biāo)題和評分的 span 標(biāo)簽,并用捕獲組提取標(biāo)簽內(nèi)容。使用 zip 壓縮兩個(gè)列表,循環(huán)遍歷所有電影標(biāo)題和評分。

使用 IP 代理

許多網(wǎng)站對爬蟲程序比較反感,因?yàn)榕老x程序會(huì)耗費(fèi)掉它們很多的網(wǎng)絡(luò)帶寬,并制造很多無效的流量。為了隱匿身份,通常需要使用 IP 代理來訪問網(wǎng)站。商業(yè) IP 代理(如蘑菇代理、芝麻代理、快代理等)是一個(gè)好的選擇,使用商業(yè) IP 代理可以讓被爬取的網(wǎng)站無法獲取爬蟲程序來源的真實(shí) IP 地址,從而無法簡單的通過 IP 地址對爬蟲程序進(jìn)行封禁。

以蘑菇代理為例,我們可以在該網(wǎng)站注冊一個(gè)賬號,然后購買相應(yīng)的套餐來獲得商業(yè) IP 代理。蘑菇代理提供了兩種接入代理的方式,分別是 API 私密代理和 HTTP 隧道代理,前者是通過請求蘑菇代理的 API 接口獲取代理服務(wù)器地址,后者是直接使用統(tǒng)一的代理服務(wù)器 IP 和端口。

使用 IP 代理的代碼如下所示:

import requests
proxies = {
    'http': '<http://username:password@ip>:port',
    'https': '<https://username:password@ip>:port'
}
response = requests.get('<http://www.example.com>', proxies=proxies)

其中,usernamepassword 分別是蘑菇代理賬號的用戶名和密碼,ipport 分別是代理服務(wù)器的 IP 地址和端口號。注意,不同的代理提供商的接入方式可能不同,需要根據(jù)實(shí)際情況進(jìn)行相應(yīng)的修改。

“Python網(wǎng)絡(luò)爬蟲之如何獲取網(wǎng)絡(luò)數(shù)據(jù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

新聞名稱:Python網(wǎng)絡(luò)爬蟲之如何獲取網(wǎng)絡(luò)數(shù)據(jù)
文章源于:http://chinadenli.net/article0/pijpoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、外貿(mào)建站動(dòng)態(tài)網(wǎng)站、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)