日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python爬蟲系列(一)

系統 1869 0

前言

關于python爬蟲目前有兩個主流的庫一個是urllib和requests 在python3中urllib2已經沒有了,取而代之的是urllib.request。這里的話我將首先介紹urllib.request的使用。之后我再介紹request,我本人是打算做一個系列的爬蟲教程不僅僅包括入門還有實戰進階所以我希望瀏覽我寫的博客時可以按順序瀏覽學習。那么廢話不多說奉上名言 成功沒有偶然。 即便有些勝利者謙虛地說,自己的成功是偶然的緣故。—— 尼采 開始正片!!!

urllib 下載

打開cmd命令輸入 pip install urllib3 點擊回車
python爬蟲系列(一)_第1張圖片
當然有時候由于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'))

            
          

python爬蟲系列(一)_第2張圖片
ok! 當你也這樣之后恭喜你成功了!不過還沒完!!!

urlopen 方法

info 獲取當前內容狀態
getcode 輸出狀態碼
geturl 獲取當前網址

            
              print(r.info())
print(r.getcode())
print((r.geturl()))


            
          

效果 python爬蟲系列(一)_第3張圖片
完整代碼

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

那么今天就這樣吧。等等來個結束福利!

實戰示例(福利)

` python爬蟲系列(一)_第4張圖片

            
              
                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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 民权县| 黎平县| 柳州市| 柘城县| 额敏县| 万载县| 沁阳市| 民和| 松原市| 沽源县| 明光市| 海兴县| 察雅县| 安阳县| 金溪县| 漠河县| 稷山县| 潮安县| 穆棱市| 吉林市| 青川县| 洛扎县| 尖扎县| 大宁县| 克东县| 淮滨县| 岳西县| 临颍县| 浠水县| 大庆市| 娄烦县| 方正县| 霸州市| 嘉黎县| 开平市| 泗阳县| 白城市| 双牌县| 怀来县| 莱阳市| 府谷县|