亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python爬蟲系列(一)

系統 1857 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條評論
主站蜘蛛池模板: 欧美69xx| 精品麻豆 | 中文字字幕在线 | 日韩a一级欧美一级 | 欧美80岁老妇一级毛片 | 欧美日韩亚洲国产一区二区三区 | 人人干天天干 | 在线观看日本免费视频大片一区 | 亚洲图片一区二区 | 国产1区2区3区在线观看 | 久久久久久综合对白国产 | 亚洲产在线精品第一站不卡 | 成人合集大片bd高清在线观看 | 国产亚洲漂亮白嫩美女在线 | 中国日韩欧美中文日韩欧美色 | 国产三级日产三级日本三级 | 欧美一级看片a免费观看 | 亚洲在线观看 | 欧美一区在线观看视频 | 狠狠色丁香久久婷婷综 | 天天摸天天操免费播放小视频 | 国产精品视频成人 | 亚洲国产福利精品一区二区 | 伊人久久中文字幕久久cm | 日日摸天天摸狠狠摸视频 | 亚洲欧美一区二区久久香蕉 | 最新日韩中文字幕 | 欧美成人一区亚洲一区 | 中文字幕在线一区二区在线 | 亚洲国产欧美自拍 | 高清中文字幕免费观在线 | 天天爽夜夜操 | 国产在线一区二区三区在线 | 欧美在线观看第一页 | 调教师鞭打总裁奴男男 | 欧美高清国产 | 91系列| 久久美女精品 | 久草在线免费播放 | 成人美女隐私免费 | 九九九九九九伊人 |