python爬蟲學習第二講

2021-10-11 19:12:26 字數 2136 閱讀 7488

爬蟲網路請求模組

urllib.parse模組 —— 解析url

聚焦網路爬蟲 —— 根據既定目標有選擇的抓取某一特定主題內容(學習內容)

增量式網路爬蟲

深層網路爬蟲

瀏覽器會對url進行編碼。除英文本元、數字和部分符號外,其餘全部使用百分號加十六進製制進行編碼,每個漢字由3個百分號的十六進製製碼組成

# requests版本

import requests

url =

''req = requests.get(url)

with

open

('photo.png'

,'wb'

)as f:

f.write(req.content)

# urllib版本

from urllib import request

url =

''request.urlretrieve(url,

'photo.png'

)

urllib.request.request(『**』,headers=『字典型別』) —— 支援重構user-agent

變數(響應物件).getcode() —— 獲取狀態碼

變數(響應物件).geturl() —— 獲取url位址

獲取資料流程

普通獲取資料方法

獲取響應物件(urlopen)

讀取響應物件內容(read)、獲取狀態碼(getcode)、獲取url位址(geturl)等操作

需要重構user-agent

建立請求物件(構建user-agent)

獲取響應物件

獲取響應物件內容、狀態碼、url位址等

# 普通獲取網頁資訊

import urllib.request

res = urllib.request.urlopen(

'')print

(res)

# 獲取響應物件:

look = res.read(

)# 獲取位元組流b'\r\n......\r\n'

see = res.read(

).decode(

'utf-8'

)# 為空 —— 不能同時獲取位元組流和字串

print

(look.decode(

'utf-8'))

# 獲取字串 ...

# urlopen不支援重構user-agent

from urllib import request

headers =

res = request.urlopen(

'', headers = headers)

# 結果 typeerror: urlopen() got an unexpected keyword argument 'headers'

# request.requst支援重構user-agent

from urllib import request

headers =

url =

''req = request.request(url,headers = headers)

# 建立請求物件

res = request.urlopen(req)

# 獲取響應物件

print

(res.read(

).decode(

'utf-8'))

#

# 使用urlencode方式

import urllib.parse

keyword =

keyword = urllib.parse.urlencode(keyword)

print

(keyword)

# wd=%e8%80%81%e5%b8%88

# 使用quote方式

import urllib.parse

keyword =

'學生'

keyword = urllib.parse.quote(keyword)

print

(keyword)

# %e5%ad%a6%e7%94%9f

python教程第二講 Python爬蟲 第二講

for迴圈 name neusoft for x in name print x if x s print 哈哈 結果 neu s哈哈of t進度條 使用 pip install tqdm 安裝tqdm庫 匯入 tqdm 庫和 time 庫 from tqdm import tqdm import ...

機器學習 第二講

多元線性回歸又稱 multivariate linear regression 現在介紹一種可以表示任意輸入變數的符號 現在定義假設函式的多變數形式,包含以下各種引數 h theta x theta 0 theta 1 x 1 theta 2 x 2 theta 3 x 3 cdots theta ...

Cmake學習第二講

原始檔 include libhelloslam.h 這是原始檔 使用 libhelloslam.h 中的 printhello 函式 intmain int argc,char ar 庫檔案 這是乙個庫檔案 include using namespace std void printhello 標...