日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫requests实战_Python爬虫之requests库网络爬取简单实战

發布時間:2023/12/1 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫requests实战_Python爬虫之requests库网络爬取简单实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實例1:直接爬取網頁

實例2 : 構造headers,突破訪問限制,模擬瀏覽器爬取網頁

實例3 : 分析請求參數,構造請求參數爬取所需網頁

實例4: 爬取圖片

實例5: 分析請求參數,構造請求參數爬取所需信息

實例1:京東商品頁面的爬取

image.png

現在我們利用requests庫爬取這個頁面的商品信息

首先引入requests庫

import requests

然后爬取頁面

r =requests.get("https://item.jd.com/4645290.html")

然后我們測試狀態碼,編碼和內容

r.status_code

r.encoding

r.text[:1000]

image.png

到此,說明我們已經成功利用requests庫獲取到了商品頁面的信息。

完整的爬取代碼

import requests

url = "https://item.jd.com/4645290.html"

try:

r = requests.get(url)

r.raise_for_status()

r.encoding = r.apparent_encoding

print(r.text[:1000])

except:

print("爬取失敗")

實例2 : 亞馬遜商品頁面爬取

我們選取如下界面進行爬取

image.png

首先,我們按照之前的步驟進行爬取

引入requests庫,然后get,判斷status_code

r = requests.get("https://www.amazon.cn/dp/B0011F7WU4/ref=s9_acss_bw_cg_JAVA_1a1_w?m=A1AJ19PSB66TGU&pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-6&pf_rd_r=D9MK8AMFACZGHMFJGRXP&pf_rd_t=101&pf_rd_p=f411a6d2-b2c5-4105-abd9-69dbe8c05f1c&pf_rd_i=1899860071")

r.status_code

顯示503,說明服務器錯誤,

503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態。

我們查看編碼發現

r.encoding

'ISO-8859-1'

我們需要轉換編碼

r.encoding = r.apparent_encoding

然后顯示爬取內容,發現

image.png

發現出現了錯誤。

網頁告訴我們出現了錯誤,但只要我們正確獲取到了網頁的內容,就說明網路方面肯定是沒有錯誤的。這說明亞馬遜對爬蟲有限制,一般對爬蟲限制的話,就是robots協議,其中還可以對訪問對象進行限制,限制只能通過相應的瀏覽器訪問,而限制爬蟲的訪問。

我們通過request.header查看我們發給亞馬遜的請求頭部到底是什么內容

image.png

我們看到信息中的user-agent的信息是python。這說明我們的程序誠實的告訴亞馬遜,這個程序是python的requests庫發起的請求。

亞馬遜的服務器看到這是個爬蟲請求,所以就返回錯誤的信息。

那么我們如何才能訪問呢?

我們都知道requests庫可以更改請求的頭部信息,我們可以模擬一個瀏覽器的請求

我們構造一個鍵值對

kv = {'user-agent':'Mozilla/5.0'}

url = "https://www.amazon.cn/dp/B0011F7WU4/ref=s9_acss_bw_cg_JAVA_1a1_w?m=A1AJ19PSB66TGU&pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-6&pf_rd_r=D9MK8AMFACZGHMFJGRXP&pf_rd_t=101&pf_rd_p=f411a6d2-b2c5-4105-abd9-69dbe8c05f1c&pf_rd_i=1899860071"

r = requests.get(url, headers = kv)

我們查看狀態碼,發現為200,說明這一次成功獲取到了頁面的內容

image.png

完整的爬取代碼

import requests

url = "https://www.amazon.cn/dp/B0011F7WU4/ref=s9_acss_bw_cg_JAVA_1a1_w?m=A1AJ19PSB66TGU&pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-6&pf_rd_r=D9MK8AMFACZGHMFJGRXP&pf_rd_t=101&pf_rd_p=f411a6d2-b2c5-4105-abd9-69dbe8c05f1c&pf_rd_i=1899860071"

try:

kv = {'user-agent':'Mozilla/5.0'}

r = requests.get(url, headers = kv)

r.raise_for_status()

r.encoding = r.apparent_encoding

print(r.text[1000:2000])

except:

print("爬取失敗")

實例3: 百度/360搜索關鍵詞提交爬蟲

搜索關鍵詞提交的接口:

https://www.baidu.com/s?ie=UTF-8&wd=keyword

通過requests的params參數,構造查詢參數

完整的代碼

import requests

keyword = "劉德華"

url = "http://www.baidu.com/s?ie=UTF-8"

try:

kv = {"wd":keyword}

r = requests.get(url, params = kv)

print(r.request.url)

r.raise_for_status()

print(len(r.text))

print(r.text)

except:

print("爬取失敗")

實例4 網絡圖片的爬取和存儲

網絡中圖片連接的格式

http://www.example.com/picture.jpg

假設我們現在要爬取

http://www.nationalgeographic.com.cn/

圖片連接:

http://image.nationalgeographic.com.cn/2015/0121/20150121033625957.jpg

完整的爬取代碼:

import requests

import os

url = "http://image.nationalgeographic.com.cn/2015/0121/20150121033625957.jpg"

root = "D://pics//"

path = root + url.split('/')[-1]

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:

f.write(r.content)

f.close()

print("文件保存成功")

else :

print("文件已存在")

except:

print("爬取失敗")

實例5 IP地址歸屬地查詢

我們分析它請求的過程,發現它的請求接口就是在地址后附加參數,類似于百度搜索

http://m.ip138.com/ip.asp?ip=125.220.159.160

所以我們可以構造查詢參數,發送給服務器,然后獲取返回的結果

完整代碼

import requests

url = "http://m.ip138.com/ip.asp?"

ip = "125.220.159.160"

kv = {"ip":ip}

try:

r = requests.get(url, params = kv)

r.raise_for_status()

r.encoding = r.apparent_encoding

print(r.text)

except:

print("爬取失敗")

總結

以上是生活随笔為你收集整理的python爬虫requests实战_Python爬虫之requests库网络爬取简单实战的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。