第二講案例

2021-10-08 00:11:26 字數 2916 閱讀 3378

(一)使用登入cookie方法

使用第一講案例中查詢響應檔案的方式找到該頁面的doc檔案,獲取請求頭中的cookie資訊:

將該資訊以鍵值對的形式儲存到請求頭引數中即可,請使用自己的cookie值

headers =
爬取完整程式如下,可參考:

import requests

def local_1():

# 準備引數

base_url = ''

headers =

# 傳送請求獲取響應

response = requests.get(base_url, headers=headers)

dirname = './html/'

# 寫入檔案

with open(f'kaixin.html', 'w', encoding='utf-8') as fp:

fp.write(response.content.decode(encoding='utf-8'))

if __name__ == '__main__':

local_1()

(二)使用登入賬號和密碼驗證

不太推薦這種方法,因為有的**需要驗證碼,會報錯。

開心網的登入頁面似乎有兩個,乙個需要驗證,乙個不需要,這裡直接複製這個url即可。

流程就是建立乙個session物件,使用post請求傳遞了使用者賬號和密碼引數,再使用這個物件對頁面進行請求。完整**如下:

import requests

def local_2():

"""使用者名稱,密碼登入爬取"""

# 1、登入網頁

local_url = ''

base_url = ''

# 僅需要瀏覽器標識

headers =

data =

# 2、建立session物件

session = requests.session()

session.post(local_url, headers=headers, data=data)

response = session.get(base_url, headers=headers)

print(response.text)

if __name__ == '__main__':

local_2()

import requests

proxies =

response = requests.get('', proxies=proxies)

print(response.status_code)

import requests

def get_json(url):

"""根據路由,拿到響應的json資料

:param url: 獲取物件的路由

:return: json資料

"""headers =

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

return response.json()

def get_city_adcode():

"""獲取城市的adcode

:return: [(name, adcode)]

"""# 傳送請求獲取響應

url = ''

city_json = get_json(url)

# 取出需要的城市的adcode以列表形式儲存

city_list = city_json['data']['citydata']['hotcitys']

city_adcode =

for i in range(1,len(city_list)):

return city_adcode

def get_city_weather(name, adcode):

"""獲取城市的天氣資訊

:param name: 城市名稱

:param adcode: 城市編號

:return:

"""# 傳送請求獲取天氣的json資料

url = '' % adcode

weather_json = get_json(url)

# 獲取其中的天氣和溫度資訊

weather_list = weather_json['data']['data'][0]['forecast_data'][0]

weather_name = weather_list['weather_name']

max_temp = weather_list['max_temp']

min_temp = weather_list['min_temp']

return f'市,天氣:,最高溫度:,最低溫度:'

def main():

"""獲取才是天氣的主線任務

:return:

"""# 1、獲取城市的adcode

city_adcode_list = get_city_adcode()

# 2、獲取城市的天氣資訊

for city in city_adcode_list:

name = city[0]

adcode = city[1]

get_weather = get_city_weather(name, adcode)

print(get_weather)

if __name__ == '__main__':

main()

感謝各位耐心瀏覽!謝謝大家的支援。

機器學習 第二講

多元線性回歸又稱 multivariate linear regression 現在介紹一種可以表示任意輸入變數的符號 現在定義假設函式的多變數形式,包含以下各種引數 h theta x theta 0 theta 1 x 1 theta 2 x 2 theta 3 x 3 cdots theta ...

第二講 變數定義

批處理中變數的定義。變數 在程式的執行過程中隨時可以發生變化的量。好像是這麼定義的,在批處理中,變數的定義一般用以下set命令來設定。set 顯示 設定或刪除 cmd.exe 環境變數。set設定變數的基本形式 set 變數名 變數值 在cmd中如果直接輸入set,則會顯示系統的環境變數,而且這些變...

R語言第二講

web packages有一些錯誤是r的初學者和經驗豐富的r程式設計師都可能常犯的。如果程式出錯了,請檢查 以下幾方面。使用了錯誤的大小寫。help help 和help 是三個不同的函式 只有第乙個 是正確的 忘記使用必要的引號。install.packages gclus 能夠正常執行,然而in...