91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬蟲——requests庫使用代理

發布時間:2020-08-03 15:56:20 來源:網絡 閱讀:199 作者:nineteens 欄目:編程語言

  在看這篇文章之前,需要大家掌握的知識技能:

  python基礎

  html基礎

  http狀態碼

  讓我們看看這篇文章中有哪些知識點:

  get方法

  post方法

  header參數,模擬用戶

  data參數,提交數據

  proxies參數,使用代理

  進階學習

  安裝上requests庫

  pip install requests

  先來看下幫助文檔,看看requests的介紹,用python自帶的help命令

  import requests

  help(requests)

  output:

  Help on package requests:

  NAME

  requests

  DESCRIPTION

  Requests HTTP Library

  ~~~~~~~~~~~~~~~~~~~~~

  Requests is an HTTP library, written in Python, for human beings. Basic GET

  usage:

  >>> import requests

  >>> r = requests.get('https://www.python.org')

  >>> r.status_code

  200

  >>> 'Python is a programming language' in r.content

  True

  ... or POST:

  >>> payload = dict(key1='value1', key2='value2')

  >>> r = requests.post('https://httpbin.org/post', data=payload)

  >>> print(r.text)

  {

  ...

  "form": {

  "key2": "value2",

  "key1": "value1"

  },

  ...

  }

  The other HTTP methods are supported - see `requests.api`. Full documentation

  is at .

  :copyright: (c) 2017 by Kenneth Reitz.

  :license: Apache 2.0, see LICENSE for more details.

  這里解釋下,requests庫是由python編寫的對人類友好的http庫,并且舉例了GET與POST的方法。

  GET方法

  好的,那我們自己來測試下,就以請求百度為例吧,,,(誰讓百度這么耐抗的)

  import requests

  r = requests.get('https://www.baidu.com')

  print(r.status_code) #打印返回的http code

  print(r.text) #打印返回結果的text

  方便點,截了個圖給大家看,返回的code是200,說明請求正常拉回網頁了。

  看下返回的text,有點不對頭,少了一些html標簽,最起碼百度兩個字得有吧。嗯,這是什么原因,,,

  相信有些同學已經想到了,是沒有真實模擬用戶的請求,你去爬數據,還不模擬用戶請求,那肯定限制你啊。這個時候需要加一個header參數來搞定,至少要加一個user-agent吧。好,那咋們去找一個ua吧。別百度了,自己動手,豐衣足食。教大家一個辦法,用火狐的開發者工具。

  火狐瀏覽器的開發者工具

  打開新標簽 —— 按F12——訪問下百度——找到NetWork——隨便點開一個——往下翻——看到ua了吧,復制上。

  import requests鄭州人流手術費用 http://mobile.120csjlyy.com/

  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

  r = requests.get('https://www.baidu.com', headers=headers)

  print(r.status_code)

  print(r.text)

  嗯~~~數據有點多,往下翻翻,這下就正常了嘛,數據都有了。。。PS:不信?可以自己輸出一個html文件,瀏覽器打開看看唄

  POST方法

  只需要把get改成post就好了

  import requests

  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

  r = requests.post('https://www.baidu.com', headers=headers)

  print(r.status_code)

  print(r.text)

  運行下試試看。一般post都是用來提交表單信息的,嗯,這里找一個能提交數據的url,去post下。

  用我自己寫的接口(PS:django寫的,挺方便),大家復制過去就好了。注意看代碼,data是要post的數據,post方法里加了一個data參數。

  import requests

  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

  # post的數據

  data = {"info": "biu~~~ send post request"}

  r = requests.post('http://dev.kdlapi.com/testproxy', headers=headers, data=data) #加一個data參數

  print(r.status_code)

  print(r.text)

  截個圖給大家看下,http code 200,body信息說的post成功,并且返回的了我自己的IP信息以及post的數據

  使用代理

  為什么用代理?一般網站都有屏蔽的限制策略,用自己的IP去爬,被封了那該網站就訪問不了,這時候就得用代理IP來解決問題了。封吧,反正封的不是本機IP,封的代理IP。

  既然使用代理,得先找一個代理IP。PS:自己寫個代理服務器太麻煩了,關鍵是我也不會寫啊,,,哈哈哈

  import requests

  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

  # post的數據

  data = {"info": "biu~~~ send post request"}

  # 代理信息,由快代理贊助

  proxy = '115.203.28.25:16584'

  proxies = {

  "http": "http://%(proxy)s/" % {'proxy': proxy},

  "https": "http://%(proxy)s/" % {'proxy': proxy}

  }

  r = requests.post('http://dev.kdlapi.com/testproxy', headers=headers, data=data, proxies=proxies) #加一個proxies參數

  print(r.status_code)

  print(r.text)

  主要方法里加個proxies參數,這就用上代理IP了。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆树市| 台东县| 上林县| 科尔| 万全县| 长子县| 突泉县| 海兴县| 苏尼特左旗| 长葛市| 株洲县| 桐庐县| 澎湖县| 苍南县| 河池市| 樟树市| 景洪市| 峡江县| 贵德县| 万年县| 富平县| 屏南县| 罗田县| 承德县| 河北省| 铁岭市| 广宁县| 边坝县| 留坝县| 鹿泉市| 台中市| 丹凤县| 延安市| 永仁县| 绥江县| 东莞市| 九江市| 柞水县| 荔浦县| 辉南县| 仁寿县|