Python爬⾍:英雄联盟近期战绩查询
c语⾔选⼿早已听说Python的⽅便和其各⼤爬⾍模块的实⽤性,于是暑假⽆所事事的我决定在没有系统学习Python语法的情况下,⼀边写⼀个和⾃⼰兴趣有关的爬⾍,⼀边学习⼀下Python⽅便的语法,体验Python的⽅便之处。
⼀·⽤到的语法
<()
这个是常⽤的爬⾍模块,可以爬取⽹页的json⽂件,语法为(url,param,headers)
其中url是必须要的,⽤来给⽹络⽂件定位;param不⼀定需要,具体是⼲啥的我也没遇到过;headers是防⽌被反爬⾍的,可以把⾃⼰的user-agent模拟成浏览器,并且可以输⼊cookie,保证可以不被⽹页的反爬⾍机制阻挡。杨桂青
百花金鸡奖2.re.findall()
这个是正则表达式模块re⾥⾯的,对于正则表达式还需要继续学习,但是本项⽬只需要使⽤这个出英⽂单词(英雄名)和数字(英雄代码),⽐较简单
火车票网上怎么订票3.for循环
Python的循环很有意思,遍历数组arr中的元素⽤到循环for elem in arr:其中我们还可以在后⾯加上[x:]表⽰从下标为x的开始和[:x]表⽰只遍历前⾯的x个
4.print姜虎东老婆
Python的print只可以输出字符串,不可以输出数字,如果输出数组需要转换为字符串str(num)
5.input
input也是处理字符串,如果要读取数字也需要转换:
烧胎起步int(input("请输⼊数字:"))
⼆·分析LOL战绩查询的⽹站
进⼊⽹站,登录以后按f12使⽤开发⼯具。到⽹络-JS⾥⾯寻对局的JS⽂件。
刚开始你会发现JS⽂件是空的,这是因为它已经载⼊好了,⽽载⼊的时候你还没有按下F12,所以就没有抓取到。这时候刷新⼀下,就会有⼀堆js⽂件出现。
什么轿车性价比高
所以我们的第⼀步就确定了:爬取matchList,获得gameId。
⾸先是url:这时候我们就发现gameId的⽤处了:每⼀句的url区分就靠这个gameId,所以我们就根据gameId的修改爬取数据。下⾯还有Cookie:
然后看gameStats下⾯的teamStats
0是蓝⾊⽅,1是红⾊⽅,我们可以看到队伍胜利情况:这局0['win']=='Win',所以是蓝⾊⽅胜利。然后看Participants:⼀共有0-9⼗个⼈(废话),我们看看第⼀个(0):