本來是想爬取之后作最佳羈絆組合推算,但是遇到知識點無法消化(知識圖譜),所以暫時先不組合了,實力有限
成都創(chuàng)新互聯(lián)服務項目包括樂安網(wǎng)站建設、樂安網(wǎng)站制作、樂安網(wǎng)頁制作以及樂安網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,樂安網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到樂安省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
庫的安裝
1.requests? #爬取棋子數(shù)據(jù)
2.json? #棋子數(shù)據(jù)為js動態(tài),需使用json解析
3.BeautifulSoup
實戰(zhàn)前先新建個lol文件夾作為工作目錄,并創(chuàng)建子目錄data,用于存放數(shù)據(jù)。
1.爬取數(shù)據(jù),新建個py文件,用于爬取云頂數(shù)據(jù),命名為data.py
1.1定義個req函數(shù),方便讀取。//需設定編碼格式,否則會出現(xiàn)亂碼
def Re_data(url):
re = requests.get(url)
re.encoding = 'gbk'
data = json.loads(re.text)
return data['data']
1.2定義個Get函數(shù),用于讀取數(shù)據(jù)并使用保存函數(shù)進行保存數(shù)據(jù),保存格式為json。
def Get_data():
# 獲取數(shù)據(jù)并保存至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函數(shù)實現(xiàn)讀取的數(shù)據(jù)進行文件保存,保存目錄為工作目錄下的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定義主函數(shù)main跑起來
if __name__ == '__main__':
start = time.time()
Get_data()
print('運行時間:' + str(time.time() - start) + '秒')
至此,數(shù)據(jù)爬取完成。
2.種族和職業(yè)進行組合。
2.1未完成 //未完成,使用窮舉方法進行組合會出現(xiàn)內(nèi)存不夠導致組合失?。╢or循環(huán)嵌套導致數(shù)組內(nèi)存超限)
//待學習,使用知識圖譜建立組合優(yōu)選,可參考:
期間遇到的問題:
1.爬取棋子數(shù)據(jù)時為動態(tài)js加載,需通過json模塊的loads方法獲取
2.3層for循環(huán)嵌套數(shù)據(jù)量大,導致計算失敗,需優(yōu)化計算方法。
數(shù)學相關
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): 獲取商和余數(shù)。 divmod(5,2) (2,1)
pow(a,b) : 獲取乘方數(shù)。pow(2,3) 8
round(a,b) : 獲取指定位數(shù)的小數(shù)。a代表浮點數(shù),b代表要保留的位數(shù)。round(3.1415926,2) 3.14
range(a[,b]) : 生成一個a到b的數(shù)組,左閉右開。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) : 接收一個字符串,與所要編碼的格式,返回一個字節(jié)流類型。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) : 轉換數(shù)字為相應ASCI碼字符。 chr(65) 'A'
ord(str) : 轉換ASCI字符為相應的數(shù)字。 ord('A') 65
相關操作
eval****() : 執(zhí)行一個表達式,或字符串作為運算。 eval('1+1') 2
exec() : 執(zhí)行python語句。 exec('print("Python")') Python
filter(func, iterable) : 通過判斷函數(shù)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():調(diào)用系統(tǒng)內(nèi)置的幫助系統(tǒng)。
isinstance():判斷一個對象是否為該類的一個實例。
issubclass():判斷一個類是否為另一個類的子類。
globals() : 返回當前全局變量的字典。
next(iterator[, default]) : 接收一個迭代器,返回迭代器中的數(shù)值,如果設置了default,則當?shù)髦械脑乇闅v后,輸出default內(nèi)容。
reversed(sequence) : 生成一個反轉序列的迭代器。 reversed('abc') ['c','b','a']
爬蟲的請求方式常用的有urllib和requests,前者是自帶模塊,后者需要我們自己進行安裝。
安裝requests模塊
注意:在 python2 中,urllib 被分為urllib,urllib2等,在python3中我們直接使用urllib
雖然Python的標準庫中 urllib 模塊已經(jīng)包含了平常我們使用的大多數(shù)功能,但是它的 API 使用起來讓人感覺不太好,而 Requests 自稱 "HTTP for Humans",說明使用更簡潔方便。
Python 爬蟲的入門教程有很多,以下是我推薦的幾本:
1.《Python 網(wǎng)絡爬蟲開發(fā)實戰(zhàn)》:這本書介紹了Python爬蟲的基本原理,以及如何使用Python編寫爬蟲程序,實現(xiàn)網(wǎng)絡爬蟲的功能。
2.《Python爬蟲技術實戰(zhàn)》:這本書介紹了Python爬蟲的基本原理,以及如何使用Python編寫爬蟲程序,實現(xiàn)網(wǎng)絡爬蟲的功能。
3.《Python爬蟲數(shù)據(jù)分析》:這本書介紹了如何分析爬取到的數(shù)據(jù),以及如何使用Python編寫爬蟲程序,實現(xiàn)網(wǎng)絡爬蟲的功能。
4.《Python爬蟲實戰(zhàn):深入理解Web抓取》:這本書介紹了如何使用Python編寫爬蟲程序,實現(xiàn)網(wǎng)絡爬蟲的功能,以及如何深入理解Web抓取。
5.《Python網(wǎng)絡爬蟲實戰(zhàn)》:這本書介紹了如何使用Python編寫爬蟲程序,實現(xiàn)網(wǎng)絡爬蟲的功能,以及如何解決爬蟲程序遇到的問題。
以上就是我推薦的幾本Python爬蟲的入門教程,可以幫助初學者快速掌握Python爬蟲的基本技術。
分享名稱:python爬蟲常用函數(shù) 爬蟲函數(shù)用法介紹
網(wǎng)頁地址:http://chinadenli.net/article16/dodshgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、App設計、品牌網(wǎng)站建設、手機網(wǎng)站建設、自適應網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)