Requests庫——實例講解

都是特別基礎的實例,每個用例都有他的意義。例子來源:《中國大學慕課》,北京理工大學嵩天老師的,Python爬蟲課程。看這篇文章之前,最好看一下Requests庫的詳細介紹。Python爬蟲入門——Requests庫

1.爬取京東商品頁面的框架

import requests
url="https://item.jd.com/100004706522.html"
try:
    r=requests.get(url)
    r.raise_for_status()     #檢查返回狀態碼是否爲200
    r.encoding=r.apparent_encoding   #選擇正確編碼方式
    print(r.text[:1000])   #因爲頁面代碼比較多,所以這裏就只選擇性的輸出    
except:
    print("error")

2. 爬取亞馬遜商品頁面的框架

  亞馬遜商品頁面的爬取,如果按照上邊的京東案例,會報錯。因爲亞馬遜對爬蟲做了限制,就是請求報文頭中的User-Agent字段。所以我們要對User-Agent字段進行改變。

import requests
url = "https://www.amazon.cn/dp/B00J7E381S?ref_=Oct_DotdV2_PC_2_GS_DOTD_f0f9ddb1&pf_rd_r=269HMTWP7R5ZPFRGY17V&pf_rd_p=8c48638a-3752-448a-8685-5a17153fb132&pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=desktop-2"
try:
    kv = {'user-agent':'Mozilla/5.0'}    #更改請求報文頭部信息
    r=requests.get(url,headers=kv)      
    print(r.request.headers)                   #打印請求頭
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text)
except:
    print("爬取失敗")

3. 百度搜索關鍵詞提交

修改params參數提交關鍵詞

百度的關鍵詞接口:http://www.baidu.com/s?wd=keyword

360的關鍵詞接口:http://www.so.com/s?q=keyword

import requests
keyword = "Python"
try:
    kv = {'wd':keyword}
    r = requests.get("http://www.baidu.com/s",params=kv)   
    print(r.request.url)       #發送的url地址
    r.raise_for_status()
    print(len(r.text))         #長度
except:
    print("爬取失敗")

4.圖片的爬取和存儲

  結合os庫和文件操作的使用。包括視頻、文件、圖片等,都可以用類似的方法來獲取。

import requests
import os
url = "https://image.ijq.tv/201501/31/13-57-25-65-12.jpg"
root = "E:/pics/"
path = root+url.split('/')[-1]   #文件名默認是:URL最後一個‘/’後面的東西
try:
    if  not os.path.exists(root):     #若根目錄不存在,則要建立根目錄
        os.mkdir(root)
    if  not os.path.exists(path):     #若文件不存在的話
        r=requests.get(url)
        with open(path,'wb') as f:  
#wb含義:以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,
#並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
            f.write(r.content)
            f.close()
            print("文件保存成功")
    else:
        print("文件已存在")
except :
    print("爬取失敗")

5.IP查詢

import requests
url ="http://m.ip138.com/ip.asp?ip="
try:
    r=requests.get(url+'202.204.80.112')   #這裏填寫你想要查詢的IP地址
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[-500:])   #最後500個
except :
    print("爬取失敗")

6.總結

  requests.get()方法獲取的實際上就是頁面的html代碼。你可以隨便打開一個網頁,右擊,點擊查看網頁源代碼。Requests庫只是簡單的獲取網頁信息,下面將要講解獲取信息之後,如何提取自己想要的內容。
  還在上學階段,才疏學淺,文章如有不當之處,還請多多指教~~ (●′ω`●)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章