初識Python爬蟲 requests模組

2021-10-13 18:54:35 字數 3032 閱讀 5295

寫在前言

爬蟲簡介

協議以及相關資訊

requests模組

實戰案例

如果需求可訪問github檢視源專案:pythonretiple

關於爬蟲

如何在使用編寫爬蟲的過程中避免進入局子的厄運呢?

爬蟲在場景中的分類

反爬機制

反反爬策略

協議以及相關資訊

常用請求頭資訊

常用響應頭資訊

https協議

資料加密方式

requests模組

如何使用(requests模組的編碼流程)

import requests

# ua偽裝

# user-agent:請求載體的身份標識

# 說明請求為乙個正常的請求,如果檢測到請求的載體身份標識不是基於一款瀏覽器,則表示為不正常請求,伺服器端可能會拒絕請求

# 即要建立ua偽裝:讓爬蟲對應的請求載體身份標識偽裝為一筐瀏覽器

# ua檢測:反爬策略

# ua偽裝:反反爬機制

if __name__ == "__main__":

# ua偽裝:將對應的user-agent封裝到乙個字典中

headers =

#1、指定url

url = ''

#2、處理url所攜帶的引數,封裝到字典中

kw = input('enter a word:')

param =

#2、對指定的url發起請求,對應的url是攜帶引數的,且請求過程中處理了引數

response = requests.get(url=url, params=param, headers=headers)

page_text = response.text

filename = kw + '.html'

with open(filename, 'w', encoding='utf-8') as fp:

fp.write(page_text)

print(filename, '儲存成功!!!')

import requests

import json

if __name__ == "__main__":

# 1、指定url,注意這裡url不是從頁面直接獲取,而是從抓包裡獲取的

post_url = ''

#2、進行 ua偽裝

headers =

#3、 post請求引數處理(同get一樣)

word = input('enter a word:')

data =

# 4、發起請求

response = requests.post(url=post_url, data=data, headers=headers)

# 5、獲取響應資料(這裡注意響應資料是json格式,json()返回的是obj,如果確認響應資料時json型別的才可以用 )

dic_obj = response.json()

# 6、持久化儲存

filename = word + '.json'

fp = open(filename, 'w', encoding='utf-8')

# 因為拿到json字串中有中文,中文不能使用acsii編碼

json.dump(dic_obj, fp=fp, ensure_ascii=false)

print('over!!!')

需求:爬蟲豆瓣電影分類排行榜中的電影詳情資料
import requests

import json

if __name__ == "__main__":

url = '/j/chart/top_list'

param =

headers =

response = requests.get(url=url, params=param, headers=headers)

list_data = response.json()

fp = open('./電影.json', 'w', encoding='utf-8')

json.dump(list_data, fp=fp, ensure_ascii=false)

print('over!!!')

需求:爬取肯德基餐廳查詢中指定的餐廳數量
import requests

import json

if __name__ == "__main__":

# 1、批量獲取不同企業的id值

url = ''

# 2、進行 ua偽裝

headers =

# 5、儲存企業id

id_list =

# 儲存所有企業詳情資料

all_data_lst =

# 2、引數的封裝

for page in range(1, 16):

page = str(page)

data =

# 3、發起請求

response = requests.post(url=url, data=data, headers=headers)

# 4、獲取響應資料

json_ids = response.json()

for dic in json_ids['list']:

post_url = ''

# 6、獲取企業詳情資料

for id in id_list:

data =

# 獲取企業詳情資料

detail_json = requests.post(url=post_url, data=data, headers=headers).json()

# 7、持久化儲存

fp = open('./alldata.json', 'w', encoding='utf-8')

json.dump(all_data_lst, fp=fp, ensure_ascii=false)

print('over!!!')

Python爬蟲 模擬瀏覽器訪問 Requests

有時候爬蟲需要加入請求頭來偽裝成瀏覽器,以便更好的抓取資料.開啟瀏覽器chrome找到user agent進行複製 headers headers get方法新增請求頭 print res.text 執行結果 requests庫不僅有get 方法,還有post 等方法.post 方法用於提交表單來爬...

Python爬蟲 初識爬蟲

模擬瀏覽器開啟網頁,獲取網頁中我們想要的那部分資料 瀏覽器開啟網頁的過程 當你在瀏覽器中輸入位址後,經過dns伺服器找到伺服器主機,向伺服器傳送乙個請求,伺服器經過解析後傳送給使用者瀏覽器結果,包括html,js,css等檔案內容,瀏覽器解析出來最後呈現給使用者在瀏覽器上看到的結果 瀏覽器傳送訊息給...

Python爬蟲初識

目標物件為靜態 url管理器 網頁解析器 beautifulsoup 執行流程 避免重複抓取 迴圈抓取 功能 訪問方式 import urllib2 response urllib2.urlopen print response.getcode 獲取狀態碼,200表示獲取成功 cont respon...