網頁爬取的三種方式

2021-08-27 18:42:31 字數 1418 閱讀 8727

爬取的重點在於分析網頁結構,以爬取**網為例:

爬取網頁有三種方式:

1.urllib.request

2.封裝request請求

3.urlretrieve直接寫入硬碟

下面以第三種方法爬取***

**如下:

#爬取網頁有三種方式:urllib.request,封裝request請求,urlretrieve直接寫入硬碟,下面以第三種方法爬取***

import urllib.request

'''爬取網頁方法一:'''

data=urllib.request.urlopen('').read().decode('utf-8','ignore')

#a=len(data)

'''爬取網頁方法二:'''

url=''

req=urllib.request.request(url)

data2=urllib.request.urlopen(req).read().decode('utf-8','ignore')

#b=len(data2)

#爬取**網'***'

import urllib.request

import re

key2=urllib.request.quote(key1) #對關鍵字進行編碼處理

for i in range(1,10): #獲取各頁

try: #底層網頁爬取異常處理

print("--------正在爬第"+str(i)+"頁------------")

url=""+key2+"&s="+str((i-1)*44) #構造網頁結構

data=urllib.request.urlopen(url).read().decode("utf-8","ignore") #ignore忽視編碼錯誤

pat='"pic_url":"//(.*?)"' #正則構建**

imglist=re.compile(pat).findall(data) #匹配每乙個頁面的**

for j in range(0,len(imglist)): #迴圈每乙個頁面,並儲存到本地硬碟

localfile="d:/爬蟲工程師/**粽子/"+str(i)+"_"+str(j)+".jpg"

urllib.request.urlretrieve(thisimgurl,filename=localfile)

#urlretrieve方法直接將網頁寫入本地硬碟

except exception as err:

pass

except exception as err:

pass

Spark取交集的三種方式

假設現有rdda和rddb用於根據其中某個元素取交集 rdda的資料量小於rddb 將rdda 資料量稍小 廣播出去,然後在rddb中將廣播拿回來,做交集 將rdda和rddb 根據第乙個元素進行交集 將rdda拿到本地對映成map val rddamap map string,string,int...

webview載入網頁有三種方式

開啟本包內asset目錄下的index.html檔案 wv.loadurl file android asset testvideo.html 開啟本地sd卡內的index.html檔案 wv.loadurl content 也可以寫成 file environment.getexternalsto...

定位的三種方式

1.wifi定位,ip位址定位,通過ip位址進行查詢實際位址 2.基站定位,訊號塔,基站 手機通訊服務的裝置 訊號的格數決定了手機距離基站遠近,精確度 幾十公尺到幾公里,精確度來自於基站的數量 wifi定位和基站定位侷限性 不能定位海拔 3.gps定位,通過和gps定位衛星通訊進行定位的,使用最少衛...