本來是想爬取之后作最佳羈絆組合推算,但是遇到知識點無法消化(知識圖譜),所以暫時先不組合了,實力有限
成都創新互聯服務項目包括樂安網站建設、樂安網站制作、樂安網頁制作以及樂安網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,樂安網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到樂安省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
庫的安裝
1.requests? #爬取棋子數據
2.json? #棋子數據為js動態,需使用json解析
3.BeautifulSoup
實戰前先新建個lol文件夾作為工作目錄,并創建子目錄data,用于存放數據。
1.爬取數據,新建個py文件,用于爬取云頂數據,命名為data.py
1.1定義個req函數,方便讀取。//需設定編碼格式,否則會出現亂碼
def Re_data(url):
re = requests.get(url)
re.encoding = 'gbk'
data = json.loads(re.text)
return data['data']
1.2定義個Get函數,用于讀取數據并使用保存函數進行保存數據,保存格式為json。
def Get_data():
# 獲取數據并保存至data目錄
base_url = ''
chess = Re_data(base_url + 'chess.js')
race = Re_data(base_url + 'race.js')
job = Re_data(base_url + 'job.js')
equip = Re_data(base_url + 'equip.js')
Save_data(chess,race,job,equip)
1.3定義save函數實現讀取的數據進行文件保存,保存目錄為工作目錄下的data文件夾。
def Save_data(t_chess,t_race,t_job,t_equip):
with open('./data/chess.json','w') as f:
json.dump(t_chess,f,indent='\t')
with open('./data/race.json','w') as f:
json.dump(t_race,f,indent='\t')
with open('./data/job.json','w') as f:
json.dump(t_job,f,indent='\t')
with open('./data/equip.json','w') as f:
json.dump(t_equip,f,indent='\t')
1.4定義主函數main跑起來
if __name__ == '__main__':
start = time.time()
Get_data()
print('運行時間:' + str(time.time() - start) + '秒')
至此,數據爬取完成。
2.種族和職業進行組合。
2.1未完成 //未完成,使用窮舉方法進行組合會出現內存不夠導致組合失敗(for循環嵌套導致數組內存超限)
//待學習,使用知識圖譜建立組合優選,可參考:
期間遇到的問題:
1.爬取棋子數據時為動態js加載,需通過json模塊的loads方法獲取
2.3層for循環嵌套數據量大,導致計算失敗,需優化計算方法。
數學相關
abs(a) : 求取絕對值。abs(-1)
max(list) : 求取list最大值。max([1,2,3])
min(list) : 求取list最小值。min([1,2,3])
sum(list) : 求取list元素的和。 sum([1,2,3]) 6
sorted(list) : 排序,返回排序后的list。
len(list) : list長度,len([1,2,3])
divmod(a,b): 獲取商和余數。 divmod(5,2) (2,1)
pow(a,b) : 獲取乘方數。pow(2,3) 8
round(a,b) : 獲取指定位數的小數。a代表浮點數,b代表要保留的位數。round(3.1415926,2) 3.14
range(a[,b]) : 生成一個a到b的數組,左閉右開。range(1,10) [1,2,3,4,5,6,7,8,9]
類型轉換
int(str) : 轉換為int型。int('1') 1
float(int/str) : 將int型或字符型轉換為浮點型。float('1') 1.0
str(int) : 轉換為字符型。str(1) '1'
bool(int) : 轉換為布爾類型。 str(0) False str(None) False
bytes(str,code) : 接收一個字符串,與所要編碼的格式,返回一個字節流類型。bytes('abc', 'utf-8') b'abc' bytes(u'爬蟲', 'utf-8') b'xe7x88xacxe8x99xab'
list(iterable) : 轉換為list。 list((1,2,3)) [1,2,3]
iter(iterable): 返回一個可迭代的對象。 iter([1,2,3]) list_iterator object at 0x0000000003813B00
dict(iterable) : 轉換為dict。 dict([('a', 1), ('b', 2), ('c', 3)]) {'a':1, 'b':2, 'c':3}
enumerate(iterable) : 返回一個枚舉對象。
tuple(iterable) : 轉換為tuple。 tuple([1,2,3]) (1,2,3)
set(iterable) : 轉換為set。 set([1,4,2,4,3,5]) {1,2,3,4,5} set({1:'a',2:'b',3:'c'}) {1,2,3}
hex(int) : 轉換為16進制。hex(1024) '0x400'
oct(int) : 轉換為8進制。 oct(1024) '0o2000'
bin(int) : 轉換為2進制。 bin(1024) '0b10000000000'
chr(int) : 轉換數字為相應ASCI碼字符。 chr(65) 'A'
ord(str) : 轉換ASCI字符為相應的數字。 ord('A') 65
相關操作
eval****() : 執行一個表達式,或字符串作為運算。 eval('1+1') 2
exec() : 執行python語句。 exec('print("Python")') Python
filter(func, iterable) : 通過判斷函數fun,篩選符合條件的元素。 filter(lambda x: x3, [1,2,3,4,5,6]) filter object at 0x0000000003813828
map(func, *iterable) : 將func用于每個iterable對象。 map(lambda a,b: a+b, [1,2,3,4], [5,6,7]) [6,8,10]
zip(*iterable) : 將iterable分組合并。返回一個zip對象。 list(zip([1,2,3],[4,5,6])) [(1, 4), (2, 5), (3, 6)]
type():返回一個對象的類型。
id(): 返回一個對象的唯一標識值。
hash(object):返回一個對象的hash值,具有相同值的object具有相同的hash值。 hash('python') 7070808359261009780
help():調用系統內置的幫助系統。
isinstance():判斷一個對象是否為該類的一個實例。
issubclass():判斷一個類是否為另一個類的子類。
globals() : 返回當前全局變量的字典。
next(iterator[, default]) : 接收一個迭代器,返回迭代器中的數值,如果設置了default,則當迭代器中的元素遍歷后,輸出default內容。
reversed(sequence) : 生成一個反轉序列的迭代器。 reversed('abc') ['c','b','a']
爬蟲的請求方式常用的有urllib和requests,前者是自帶模塊,后者需要我們自己進行安裝。
安裝requests模塊
注意:在 python2 中,urllib 被分為urllib,urllib2等,在python3中我們直接使用urllib
雖然Python的標準庫中 urllib 模塊已經包含了平常我們使用的大多數功能,但是它的 API 使用起來讓人感覺不太好,而 Requests 自稱 "HTTP for Humans",說明使用更簡潔方便。
Python 爬蟲的入門教程有很多,以下是我推薦的幾本:
1.《Python 網絡爬蟲開發實戰》:這本書介紹了Python爬蟲的基本原理,以及如何使用Python編寫爬蟲程序,實現網絡爬蟲的功能。
2.《Python爬蟲技術實戰》:這本書介紹了Python爬蟲的基本原理,以及如何使用Python編寫爬蟲程序,實現網絡爬蟲的功能。
3.《Python爬蟲數據分析》:這本書介紹了如何分析爬取到的數據,以及如何使用Python編寫爬蟲程序,實現網絡爬蟲的功能。
4.《Python爬蟲實戰:深入理解Web抓取》:這本書介紹了如何使用Python編寫爬蟲程序,實現網絡爬蟲的功能,以及如何深入理解Web抓取。
5.《Python網絡爬蟲實戰》:這本書介紹了如何使用Python編寫爬蟲程序,實現網絡爬蟲的功能,以及如何解決爬蟲程序遇到的問題。
以上就是我推薦的幾本Python爬蟲的入門教程,可以幫助初學者快速掌握Python爬蟲的基本技術。
分享名稱:python爬蟲常用函數 爬蟲函數用法介紹
網頁地址:http://m.kartarina.com/article16/dodshgg.html
成都網站建設公司_創新互聯,為您提供網站設計公司、App設計、品牌網站建設、手機網站建設、自適應網站、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯