10個python爬蟲入門實例(小結(jié))

      網(wǎng)友投稿 828 2022-05-29

      涉及主要知識點:

      web是如何交互的

      requests庫的get、post函數(shù)的應(yīng)用

      response對象的相關(guān)函數(shù),屬性

      Python文件的打開,保存

      代碼中給出了注釋,并且可以直接運行哦

      如何安裝requests庫(安裝好python的朋友可以直接參考,沒有的,建議先裝一哈python環(huán)境)

      windows用戶,Linux用戶幾乎一樣:

      打開cmd輸入以下命令即可,如果python的環(huán)境在C盤的目錄,會提示權(quán)限不夠,只需以管理員方式運行cmd窗口

      1

      pip install - i https: / / pypi.tuna.tsinghua.edu.cn / simple requests

      Linux用戶類似(ubantu為例): 權(quán)限不夠的話在命令前加入sudo即可

      10個python爬蟲入門實例(小結(jié))

      1

      sudo pip install -i https: //pypi .tuna.tsinghua.edu.cn /simple requests

      1.爬取強大的BD頁面,打印頁面信息

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      # 第一個爬蟲示例,爬取百度頁面

      import requests #導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.get( "http://www.baidu.com" ) #生成一個response對象

      response.encoding = response.apparent_encoding #設(shè)置編碼格式

      print ( "狀態(tài)碼:" + str ( response.status_code ) ) #打印狀態(tài)碼

      print (response.text) #輸出爬取的信息

      2.常用方法之get方法實例,下面還有傳參實例

      1

      2

      3

      4

      5

      6

      7

      8

      9

      # 第二個get方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.get( "http://httpbin.org/get" ) #get方法

      print ( response.status_code ) #狀態(tài)碼

      print ( response.text )

      3. 常用方法之post方法實例,下面還有傳參實例

      1

      2

      3

      4

      5

      6

      7

      8

      9

      # 第三個 post方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.post( "http://httpbin.org/post" ) #post方法訪問

      print ( response.status_code ) #狀態(tài)碼

      print ( response.text )

      4. put方法實例

      1

      2

      3

      4

      5

      6

      7

      8

      9

      # 第四個 put方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.put( "http://httpbin.org/put" ) # put方法訪問

      print ( response.status_code ) #狀態(tài)碼

      print ( response.text )

      5.常用方法之get方法傳參實例(1)

      如果需要傳多個參數(shù)只需要用&符號連接即可如下

      1

      2

      3

      4

      5

      6

      7

      8

      9

      # 第五個 get傳參方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.get( "http://httpbin.org/get?name=hezhi&age=20" ) # get傳參

      print ( response.status_code ) #狀態(tài)碼

      print ( response.text )

      6.常用方法之get方法傳參實例(2)

      params用字典可以傳多個

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      # 第六個 get傳參方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      data = {

      "name" : "hezhi" ,

      "age" : 20

      }

      response = requests.get( "http://httpbin.org/get" , params = data ) # get傳參

      print ( response.status_code ) #狀態(tài)碼

      print ( response.text )

      7.常用方法之post方法傳參實例(2) 和上一個有沒有很像

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      # 第七個 post傳參方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      data = {

      "name" : "hezhi" ,

      "age" : 20

      }

      response = requests.post( "http://httpbin.org/post" , params = data ) # post傳參

      print ( response.status_code ) #狀態(tài)碼

      print ( response.text )

      8.關(guān)于繞過反爬機制,以zh爸爸為例

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      # 第好幾個方法實例

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.get( "http://www.zhihu.com" ) #第一次訪問知乎,不設(shè)置頭部信息

      print ( "第一次,不設(shè)頭部信息,狀態(tài)碼:" + response.status_code ) # 沒寫headers,不能正常爬取,狀態(tài)碼不是 200

      #下面是可以正常爬取的區(qū)別,更改了User-Agent字段

      headers = {

      "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"

      } #設(shè)置頭部信息,偽裝瀏覽器

      response = requests.get( "http://www.zhihu.com" , headers = headers ) #get方法訪問,傳入headers參數(shù),

      print ( response.status_code ) # 200!訪問成功的狀態(tài)碼

      print ( response.text )

      9.爬取信息并保存到本地,因為目錄關(guān)系,在D盤建立了一個叫做爬蟲的文件夾,然后保存信息

      注意文件保存時的encoding設(shè)置

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      # 爬取一個html并保存

      import requests

      url = "http://www.baidu.com"

      response = requests.get( url )

      response.encoding = "utf-8" #設(shè)置接收編碼格式

      print ( "\nr的類型" + str ( type (response) ) )

      print ( "\n狀態(tài)碼是:" + str ( response.status_code ) )

      print ( "\n頭部信息:" + str ( response.headers ) )

      print ( "\n響應(yīng)內(nèi)容:" )

      print ( response.text )

      #保存文件

      file = open ( "D:\\爬蟲\\baidu.html" , "w" ,encoding = "utf" ) #打開一個文件,w是文件不存在則新建一個文件,這里不用wb是因為不用保存成二進制

      file .write( response.text )

      file .close()

      10.爬取圖片,保存到本地

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      #保存百度圖片到本地

      import requests #先導(dǎo)入爬蟲的庫,不然調(diào)用不了爬蟲的函數(shù)

      response = requests.get( "https://www.baidu.com/img/baidu_jgylogo3.gif" ) #get方法的到圖片響應(yīng)

      file = open ( "D:\\爬蟲\\baidu_logo.gif" , "wb" ) #打開一個文件,wb表示以二進制格式打開一個文件只用于寫入

      file .write(response.content) #寫入文件

      file .close() #關(guān)閉操作,運行完畢后去你的目錄看一眼有沒有保存成功

      Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:容器鏡像的構(gòu)建和調(diào)試指南
      下一篇:XML Spy實例教程
      相關(guān)文章
      亚洲国产精品久久久久秋霞小| 亚洲AV无码一区二区乱子伦| 国产亚洲综合久久系列| 亚洲中文字幕久久精品蜜桃 | 亚洲av无一区二区三区| 亚洲av无码久久忘忧草| 亚洲一级毛片在线观| 久久精品国产亚洲av四虎| 亚洲综合图色40p| 亚洲日本va中文字幕久久| 久久久久亚洲AV无码专区网站| 亚洲AV成人精品日韩一区| 亚洲爆乳精品无码一区二区| 亚洲av永久无码一区二区三区| 欧美亚洲国产SUV| 亚洲av日韩片在线观看| 亚洲国产一区视频| 一本色道久久综合亚洲精品高清| 久久乐国产精品亚洲综合| 国产AV无码专区亚洲AWWW| 亚洲精品乱码久久久久久久久久久久 | 久久精品国产亚洲7777| 在线观看亚洲精品福利片| 国产亚洲欧洲Aⅴ综合一区 | 久久影视国产亚洲| 亚洲国产精品乱码一区二区 | 国产成人精品久久亚洲高清不卡| 亚洲Av无码乱码在线观看性色 | 亚洲国产精品一区二区久| 亚洲不卡在线观看| 亚洲国产精品网站在线播放 | 久久久久久亚洲av无码蜜芽| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 亚洲欧美第一成人网站7777| 亚洲AV成人无码网天堂| 亚洲成年人啊啊aa在线观看| 在线精品亚洲一区二区小说| 久久精品亚洲一区二区| 亚洲欧洲精品久久| 亚洲熟妇AV一区二区三区浪潮| 婷婷亚洲综合一区二区|