為什麼要使用requests模組
使用requests模組:
如何使用requests模組
使用流程
通過5個基於requests模組的爬蟲專案對該模組進行學習和鞏固
基於requests模組的post請求
基於requests模組ajax的get請求
基於requests模組ajax的post請求
綜合練習
需求:爬取搜狗指定詞條搜尋後的頁面資料
import requestsimport os
#指定搜尋關鍵字
word = input('enter a word you want to search:')
#自定義請求頭資訊
headers=
#指定url
url = ''
#封裝get請求引數
prams =
#發起請求
response = requests.get(url=url,params=param)
#獲取響應資料
page_text = response.text
with open('./sougou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
請求載體身份標示的偽裝:
user-agent:請求載體身份標示,通過瀏覽器發起的請求,請求載體為瀏覽器,則該請求的user-agent為瀏覽器的身份標示,使用爬蟲程式發起的請求,則該請求的user-agent為爬蟲程式的身份標識.可以通過判斷該值來獲知該請求的載體究竟是基於哪款瀏覽器還是基於爬蟲程式.
反爬機制:某些門戶**會對訪問該**的請求中的user-agent進行捕獲和判斷,如果該請求的ua為爬蟲程式,則拒絕向該請求提供資料.
反反爬策略:將爬蟲程式的ua偽裝成某一款瀏覽器的身份標識.
需求:登入豆瓣電影,爬取登入成功後的頁面資料
import requestsimport os
url = ''
#封裝請求引數
data =
#自定義請求頭資訊
headers=
response = requests.post(url=url,data=data)
page_text = response.text
with open('./douban111.html','w',encoding='utf-8') as fp:
fp.write(page_text)
需求:爬取豆瓣電影分類排行榜 中的電影詳情資料
#!/usr/bin/env python# -*- coding:utf-8 -*-
import requests
import urllib.request
if __name__ == "__main__":
#指定ajax-get請求的url(通過抓包進行獲取)
url = 'j/chart/top_list?'
#定製請求頭資訊,相關的頭資訊必須封裝在字典結構中
headers =
#定製get請求攜帶的引數(從抓包工具中獲取)
param =
#發起get請求,獲取響應物件
response = requests.get(url=url,headers=headers,params=param)
#獲取響應內容:響應內容為json串
print(response.text)
需求:爬取肯德基餐廳查詢中指定地點的餐廳資料
#!/usr/bin/env python# -*- coding:utf-8 -*-
import requests
import urllib.request
if __name__ == "__main__":
#指定ajax-post請求的url(通過抓包進行獲取)
url = ''
#定製請求頭資訊,相關的頭資訊必須封裝在字典結構中
headers =
#定製post請求攜帶的引數(從抓包工具中獲取)
data =
#發起post請求,獲取響應物件
response = requests.get(url=url,headers=headers,data=data)
#獲取響應內容:響應內容為json串
print(response.text)
import requestsfrom fake_useragent import useragent
ua = useragent(use_cache_server=false,verify_ssl=false).random
headers =
url = ''
pagenum = 3
for page in range(3,5):
data =
json_text = requests.post(url=url,data=data,headers=headers).json()
all_id_list =
for dict in json_text['list']:
id = dict['id']#用於二級頁面資料獲取
#下列詳情資訊可以在二級頁面中獲取
# name = dict['eps_name']
# product = dict['product_sn']
# man_name = dict['qf_manager_name']
# d1 = dict['xc_date']
# d2 = dict['xk_date']
#該url是乙個ajax的post請求
post_url = ''
for id in all_id_list:
post_data =
response = requests.post(url=post_url,data=post_data,headers=headers)
#該請求響應回來的資料有兩個,乙個是基於text,乙個是基於json的,所以可以根據content-type,來獲取指定的響應資料
#print(response.json())
#進行json解析
json_text = response.json()
print(json_text['businessperson'])
Python爬蟲 Request模組
文章說明了request模組的意義,且強調了request模組使用更加方便。接下來介紹幾種常用的request操作,並且會在後續補充說明一些特定用法。匯入檔案 import requests一 請求 右邊為請求語句,返回值為response回應 r requests.get r requests.p...
python爬蟲利器 request庫
request庫比urllib2庫更為高階,因為其功能更強大,更易於使用。使用該庫可以十分方便我們的抓取。基本請求 r requests.get r requests.post r requests.put r requests.delete r requests.head r requests.o...
爬蟲 python(二)初識request
from urllib.request import urlopen 傳送請求,獲取伺服器給的響應 url response urlopen url 讀取結果,無法正常顯示中文 html response.read 進行解碼操作,轉為utf 8 html decode html.decode 列印結...