寫在前言
爬蟲簡介
協議以及相關資訊
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...