python获取动态js,python获取动态jsessionid

发布时间:2022-11-23

本文目录一览:

  1. python爬虫---爬取LOL云顶之弈数据
  2. 如何用Python爬虫抓取JS动态筛选内容
  3. python 有几种方法可以获取js动态源码。 用哪种方法好

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

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

  1. requests #爬取棋子数据
  2. json #棋子数据为js动态,需使用json解析
  3. BeautifulSoup 实战前先新建个lol文件夹作为工作目录,并创建子目录data,用于存放数据。
  4. 爬取数据,新建个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循环嵌套数据量大,导致计算失败,需优化计算方法。

如何用Python爬虫抓取JS动态筛选内容

打开浏览器,以google chrome为例,输入你上面的网址。 然后按F12打开调试窗口,然后尝试勾选左边某一个选项,马上可以看到右边的调试窗口有东西输出。 找到第一个输出的行,点击header,可以看到每一个都是用的post方法。 所以只需要构造相应的header并post上去,就可以得到你想要的数据了。 尝试每一个request都点开看一下 就是你要构造的数据 FormData就是你要构造的数据 把数据构造好然后使用post函数发送给网站 这个得到的是一个网页格式的数据。 而这个发放返回的是json数据,然后编码成dict格式 提取出数据就可以了。

python 有几种方法可以获取js动态源码。 用哪种方法好

最好的方法就是使用selenium这种库哦。简单介绍一下selenium,这本身是一种网站自动测试的库,所以可以模拟用户的所有交互行为,包括输入、点击、拖拉、滚动等等和用户完全相同的操作,所以也和真正打开网页一样,可以响应Javascript的行为,可以加载JS异步加载的网页。selenium最好配合PhantomJS使用,这样就没有界面,完全自动处理哦。