前言
關于python爬蟲目前有兩個主流的庫一個是urllib和requests 在python3中urllib2已經沒有了,取而代之的是urllib.request。這里的話我將首先介紹urllib.request的使用。之后我再介紹request,我本人是打算做一個系列的爬蟲教程不僅僅包括入門還有實戰進階所以我希望瀏覽我寫的博客時可以按順序瀏覽學習。那么廢話不多說奉上名言 成功沒有偶然。 即便有些勝利者謙虛地說,自己的成功是偶然的緣故。—— 尼采 開始正片!!!
urllib 下載
打開cmd命令輸入
pip install urllib3
點擊回車
當然有時候由于pip版本問題可能無法下載不過沒關系你只需要輸入
python -m pip install --upgrade pip
更新版本之后打開python輸入:
import urllib.request
如果沒有報錯那么恭喜你成功了!
urllib的模塊
request:
基本的HTTP請求模塊用于模擬發送請求
error:
異常處理模塊
parse:
用于處理URL比如拆分,解析,合并,data參數等
robotparser:
用于識別網站的robot.txt文件,判斷網站是否可以爬取
urllib.request
urllib.request的方法有:
urlretrieve()
下載文件
urlcleanup()
釋放緩存
urlopen()
發送請求get
這里我們實戰一下
import
urllib
.
request
as
u
r
=
u
.
urlopen
(
'https://123.sogou.com/'
)
u
.
urlcleanup
(
)
print
(
r
.
read
(
)
.
decode
(
'utf-8'
)
)
urlopen()返回了一個可讀的對象之后我們將其解碼為‘utf-8’
之后我們可以讀取出網站的源代碼。之后對其進行分析以后
我們在對其html進行詳細解釋
常見報錯
前面我們已經說了
print(r.read().decode('utf-8'))
可得到網站源碼
然如果沒猜錯的話當你運行上述代碼時可能會遇到如下報錯
當然如果你沒有遇到那么,,看看也無妨。 具體是怎么回事呢其實很簡單,出現異常報錯是由于設置了decode()方法的第二個參數errors為嚴格(strict)形式造成的,而這個是它默認的模式所以改個模式就好啦如下:
print(r.read().decode('utf-8','ignore'))
urlopen 方法
info
獲取當前內容狀態
getcode
輸出狀態碼
geturl
獲取當前網址
print(r.info())
print(r.getcode())
print((r.geturl()))
import
urllib
.
request
as
u
r
=
u
.
urlopen
(
'https://123.sogou.com/'
)
u
.
urlcleanup
(
)
print
(
r
.
read
(
)
.
decode
(
'utf-8'
,
'ignore'
)
)
print
(
r
.
info
(
)
)
print
(
r
.
getcode
(
)
)
print
(
(
r
.
geturl
(
)
)
)
那么今天就這樣吧。等等來個結束福利!
實戰示例(福利)
import
urllib
.
request
import
re
html
=
urllib
.
request
.
urlopen
(
r
'http://www.weather.com.cn/weather/101240701.shtml'
)
urllib
.
request
.
urlcleanup
(
)
read
=
html
.
read
(
)
.
decode
(
'utf-8'
)
def
get_way
(
path
,
string
)
:
path_way
=
path
path_get
=
re
.
compile
(
path_way
)
ture_key
=
path_get
.
findall
(
string
,
re
.
M
)
return
str
(
ture_key
)
path_html
=
'
see_html
=
get_way
(
path_html
,
read
)
path_see
=
'v.*°C'
see_weather
=
get_way
(
path_see
,
see_html
)
day
=
get_way
(
'.*日'
,
see_weather
)
.
strip
(
'[\"\']'
)
weather
=
get_way
(
'周.*°C'
,
see_weather
)
.
strip
(
'[\']'
)
print
(
weather
)
http://www.weather.com.cn/weather/101240701.shtml
天氣查詢網站。
得嘞 拜了個拜!下次表達式基礎語法(用性命擔保這個實戰示例絕對沒有超出今天內容)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
