一、聚類模型
SPSS聚類分析(含k-均值聚類,系統(tǒng)聚類和二階聚類)https://blog.csdn.net/m0_52124992/article/details/128916757
看這個,寫的很詳細(??????)??
DBSCAN聚類:基于密度的方法的特點是不依賴于距離,而是依賴于密度,從而克服基于距離的算法只能發(fā)現(xiàn)“球形”聚簇的缺點
二、爬蟲學習
(1)我選擇的是在pycharm上進行爬蟲
爬蟲入門教程:【Python+爬蟲】爆肝兩個月!拜托三連了!這絕對是全B站最用心(沒有之一)
(這個up講課很可愛,PPT做的也很精美,超級好?。?/p>
還有一個教程我也很喜歡:【Python爬蟲教程】
(2)方法積累
因為這里沒寫完就開始比賽了,現(xiàn)在這部分是比完賽補充的,
學完爬蟲之后一定要找?guī)讉€例子去練習,不只是多看幾個有有教程的案例,要自己找信息去爬,畢竟有一句關于爬蟲的名言就是萬物皆可爬嘛?(??????)??
在練習的過程中,注意區(qū)分是從網(wǎng)頁源代碼中找信息,還是通過抓包找信息,這涉及到獲取到的數(shù)據(jù)格式的不同。
1.直接爬取的網(wǎng)頁源代碼,“.text”之后獲取到“str”字符串類型的數(shù)據(jù),輸出可以看到是<html>的數(shù)據(jù)(不是一整行),這樣之后用正則去篩選所需要的信息是最簡單的。要注意正則得到的結(jié)果是一個列表,哪怕只有一組數(shù)據(jù)。
2.通過抓包獲取的數(shù)據(jù)包:
如果一眼看上去比較整齊(先在瀏覽器里預覽數(shù)據(jù)包內(nèi)容),這時候就不適合".text"轉(zhuǎn)換成字符串了,選擇",json()"可以得到更加整齊的數(shù)據(jù),字典或者由字典組成的列表(判斷是不是字典就看冒號前面的字符是不是單引號括起來的,如果是則是字典)。索引之后就是字符串類型了,如果需要可以繼續(xù)用正則篩選;
還有一種情況,如果".text"得到的類似網(wǎng)頁數(shù)據(jù),但是在一整行內(nèi),且內(nèi)容中充斥著 \n \t 等,這種數(shù)據(jù)用正則并不好處理,可以選擇用",json()"獲取到字典數(shù)據(jù),進一步索引得到字符串,然后再使用正則篩選數(shù)據(jù)。
3.我的實戰(zhàn)經(jīng)驗也并不多,只是在比賽過程中用到了這些,簡單總結(jié)了一下方法規(guī)律,希望能幫到大家。在實際應用中還是要根據(jù)需要爬取的數(shù)據(jù)類型靈活的選擇合適的方法。
(3)經(jīng)驗積累
在實際使用中,出現(xiàn)了幾個棘手的問題
1.在爬取外國網(wǎng)站時,網(wǎng)站加載速度慢,如果需要的數(shù)據(jù)量大,運行時間就會特別長,可以準備一下多線程,可以大幅度提高爬取的速度。因為考慮到多線程會影響數(shù)據(jù)順序,而且我需要的數(shù)據(jù)也并不是很多,所以我沒有使用,具體代碼上面教程里也有講到。
#需要導庫
from concurrent.futures import ThreadPoolExecutor
2.在循環(huán)爬取的過程中,可能會出現(xiàn)訪問失敗的情況,為了不影響整個進度,可以用try except語句解決
try:
#可能出問題的代碼段
#要設置timeout值(單位是秒)
response = requests.get(url=url1, headers=headers, timeout=200)
print('請求成功?。?!')
except requests.exceptions.ReadTimeout:
print('請求超時,正在繼續(xù)下一個循環(huán)。')
continue # 跳過當前循環(huán),繼續(xù)下一個循環(huán)
except requests.exceptions.RequestException:
print('請求異常,正在繼續(xù)下一個循環(huán)。')
continue # 跳過當前循環(huán),繼續(xù)下一個循環(huán)
同時可以在循環(huán)中加入隨機延時,以模擬真正的用戶訪問
import time
import random
time.sleep(random.random()*3)
3.爬取到的數(shù)據(jù)想要存儲在Excel表格中,先把數(shù)據(jù)準備成二維列表數(shù)據(jù)
import pandas as pd
data = [['1', '21', '1954', '69', '1981', '0', '0', '2', '0', '43', '1974', '44', '1974'],
['2', '13', '1974', '69', '1997', '0', '0', '2', '0', '67', '1955', 'T', '2011'],
['3', '12', '1974', '69', '1997', '0', '0', '2', '0', '81', '2005', 'T', '2011'],
['4', '14', '1970', '68', '2012', '0', '0', '2', '0', '74', '1995', '43', '1974']]
# 將數(shù)據(jù)轉(zhuǎn)換為pandas DataFrame對象
df = pd.DataFrame(data, columns=None)
# 將DataFrame對象保存為Excel文件
df.to_excel("output.xlsx", index=False)
OK!今天就到這吧,也算是簡單入門了爬蟲,明天抽時間把MATLAB里面遇到的問題整理一下(如果有整理價值的話),今年美賽就這樣了,靜候佳音吧!!文章來源:http://www.zghlxwxcb.cn/news/detail-827685.html
over!睡覺!文章來源地址http://www.zghlxwxcb.cn/news/detail-827685.html
到了這里,關于數(shù)學建模美賽(模型積累2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!