python爬虫---爬取LOL云顶之弈数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python爬虫---爬取LOL云顶之弈数据相关的知识,希望对你有一定的参考价值。

参考技术A 本来是想爬取之后作最佳羁绊组合推算,但是遇到知识点无法消化(知识图谱),所以暂时先不组合了,实力有限

库的安装

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 = 'https://game.gtimg.cn/images/lol/act/img/tft/js/'

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循环嵌套导致数组内存超限)

//待学习,使用知识图谱建立组合优选,可参考:https://zhiya360.com/12447.html

期间遇到的问题:

1.爬取棋子数据时为动态js加载,需通过json模块的loads方法获取

2.3层for循环嵌套数据量大,导致计算失败,需优化计算方法。

C#编程:加载设计器报错

平台是VS2008 还没装SQL
打开项目的其中一个窗体的时候出现错误,麻烦指教一下。回答后加分
错误:
若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误:

1 个错误

为什么会看到此页?

类名“?”不是该语言的有效标识符。

此错误的实例(1)

1。 隐藏调用堆栈

在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.CodeTypeDeclarationFromCodeClass(CodeClass vsClass)
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.OnNamespacePopulateTypes(Object sender, EventArgs e)
在 System.CodeDom.CodeNamespace.get_Types()
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.Parse(TextReader codeStream)
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.MergedCodeDomParser.System.CodeDom.Compiler.ICodeParser.Parse(TextReader stream)
在 System.CodeDom.Compiler.CodeDomProvider.Parse(TextReader codeStream)
在 Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)

代码的前级段:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace studentsystem

public partial class Form11 : Form

public Form11()

InitializeComponent();

麻烦尽快,我急!拜托

按上面给出的信息应该是InitializeComponent()初始化控件这个里面有错误,这个方法是在窗体的Designer.cs里面,看看里面是不是有个控件的名字含有“?” 参考技术A 我也不知道什么原因,但是我以前也是跟你有过类似的经验,我后来是别人教我说,先装上vs2005,在装vs2008这个问题就好了 参考技术B Form11.Designer.cs里的class名称是Form11吗? 参考技术C 不太清楚,一般我都是代码中有异常才会出现这种错误

帮你顶下吧

以上是关于python爬虫---爬取LOL云顶之弈数据的主要内容,如果未能解决你的问题,请参考以下文章

flutter-lol云顶之弈助手app

test 190730 云顶之弈

白嫖+1 云顶之弈自动化脚本

云顶之弈下累了 就来看看C/C++内存管理吧

C#编程:加载设计器报错

ArcGIS加载数据报错是怎么回事?