今天的公开课讲的是英雄联盟传记的爬取。
–爬取了英雄联盟的所有人物的"name,slug,release,associated",分别是名字,英文名字,创建日期以及国籍
–保存到lol.csv文件中
–再读取这个文件,利用里面的slug参数和获取英雄传记的地址结合
–for循环遍历所有英雄的传记故事,利用etree去掉<p>标签,利用join()函数来连接字符串数组,最后将再写入到lol.txt文件中,形成一本传记集。

1.最简单的爬取,用 requests发送post请求并获取json数据,(网站有反爬取的话就不行)

import requests      #爬取数据的库
url = 'https://yz.lol.qq.com/v1/zh_cn/search/index.json' #这个是网址
response = requests.get(url)   #爬取数据(或者叫下载数据)
data = response.json() #获取json数据

2.打开文件使用相对路径,并且声明是utf-8编码的方式(不然有可能出错)

with open('../file/lol.csv','w',encoding='utf-8') as file:    #两个点..代表上一层目录,如果想用当前目录就用一个点.................................

3.拼接字符串f‘’,也叫做格式化操作或者插值运算符,与可以可以参考其他的方法

file.write(f'\n{name},{slug},{release},{associated}')  #将多个变量值以特定格式来输出,也叫做格式化

4.csv数据的读取以及提取某一列数据
#先打开csv文件,在使用 csv.DictReader()来将一个csv数据加载为一个字典(有表头的文件建议加载为字典)
#将字典里面的slug一列提取出来

with open('../file/lol.csv',encoding='utf-8') as file_csv:reader = csv.DictReader(file_csv)slug = [r['slug'] for r in reader]       #列表推导式,相当于下面的三行注释#slug = []#for r in reader:#  slug.append(r['slug'])

5.将字典中所有的”值“提取出来

contenthtml = ""
for c in biography.values():contenthtml +=c

6.利用etree.HTML()加载字符串内容,构造了一个XPath解析对象,并且拿<p>标签下面所有的数据(从而去掉<p>标签)

#etree.HTML():构造了一个XPath解析对象并对HTML文本进行自动修正。
html = etree.HTML(contenthtml)  #解析HTML文档
content = html.xpath("//p/text()")  #去掉<p>标签

7.利用join()连接字符串

# 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串;
f.write('\n'.join(content)+"\n\n")     # 以换行符\n来组合列表,使多个列表变成一个完整的

下面是完整代码:

#对herosoider.py和bataspider.py结合在一起
import requests #爬取数据的库
import csv  #csv操作库
from lxml import etree  #可以将一些文本转换为html,方便进行增删操作。url = 'https://yz.lol.qq.com/v1/zh_cn/search/index.json'
response = requests.get(url)
data = response.json()with open('../file/lol.csv','w',encoding='utf-8') as file:file.write("name,slug,release,associated")  #写入一个表头for d in data['champions']:name = d['name']print(name)slug = d["slug"]release = d['release-date']associated = d['associated-faction-slug']file.write(f'\n{name},{slug},{release},{associated}')with open('../file/lol.csv',encoding='utf-8') as file_csv:reader = csv.DictReader(file_csv)slug = [r['slug'] for r in reader]#slug = []#for r in reader:# slug.append(r['slug'])with open('../file/lol.txt','w',encoding='utf-8') as f:for i,s in enumerate(slug):url = f"https://yz.lol.qq.com/v1/zh_cn/champions/{s}/index.json"response = requests.get(url)data = response.json()name = data['champion']['name']title = data['champion']['title']biography = data['champion']['biography']contenthtml = ""for c in biography.values():contenthtml +=c#etree.HTML():构造了一个XPath解析对象并对HTML文本进行自动修正。html = etree.HTML(contenthtml)  #解析HTML文档content = html.xpath("//p/text()")  #去掉<p>标签f.write(f'第{i+1}节 {name}-{title}\n')f.write('\n'.join(content)+"\n\n")  # 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串;# 以换行符来组合列表,使多个列表变成一个完整的

190824-英雄联盟传记爬取相关推荐

  1. 【爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩】

    [爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩] https://b23.tv/TIoy6hj

  2. 《英雄联盟》爬取捞月狗数据——想要什么角色随你定

    Python爬取捞月狗数据 要抓取的数据如下图所示: 主要包括王者游戏ID,所在区服,胜点,胜场,负场,胜率,最近状态,擅长位置,本命英雄等.由于捞月狗的数据是每天更新的,所以不同时间爬取数据可能会有 ...

  3. python爬虫------王者荣耀英雄及技能爬取并保存信息到excel

    目录 前言 一.准备工作 二.具体步骤 1.获取王者荣耀官网所有英雄所在页面的网页的源代码 2.获取王者荣耀各个英雄的具体网址 response.textd的部分内容如下 3.提取其中的数据 4.把数 ...

  4. Python爬虫练习之爬取英雄联盟皮肤

    毕业设计还没有弄完,但又不想弄,就先写个爬虫换换心情吧. 爬取的是英雄联盟英雄的皮肤,不过首页的url地址没有我们想要的数据,需要找到真实的url地址,就是简单的json文本,过程比较简单,步骤都写在 ...

  5. python3爬虫系列之使用requests爬取LOL英雄图片

    我们最终目的就是要把抓取到的图片保存到本地,所以先写一个保存图片的方法(可以保存任何二进制文件).注意在windows下文件命名包含/ | ?可能会发生错误,有的英雄皮肤名称确实包含/,所以这里使用正 ...

  6. 爬虫基础(案例:爬取英雄联盟全皮肤)

    爬取思路: 1.首先分析是静态数据还是动态数据,HTML源码中找不到英雄页面的信息,所以是静态数据. 2.chrom调试抓包,找到皮肤信息所在的URL ,这里第一个英雄皮肤所在的URL为https:/ ...

  7. 利用selenium抓取英雄联盟壁纸

    本博客主要来利用selenium这一利器来爬取LOL官网各个英雄皮肤的壁纸,注意是壁纸,不是图片!壁纸是图片,但图片不是壁纸. selenium是一个自动化测试工具,利用它可以驱动浏览器执行一些特定的 ...

  8. python爬虫工程师 成长之路十 selenium+phantomjs+request爬取lol所有英雄头像和装备图片

    文章目录 爬取所有英雄头像 选择爬取目标 寻找图片位置 引入selenium和phantomjs 构造xpath对元素定位 获取每个英雄的名字和头像url 最终步骤 爬取装备图片 最后 爬取所有英雄头 ...

  9. python爬虫入门------王者荣耀英雄及皮肤数据爬取项目

    王者荣耀英雄及皮肤数据爬取项目 一:做前需知 笔者这段学习了一些爬虫的知识,然后做了一个小项目.接下来,我会把项目的流程展示出来. 运行环境:python 3.6.3.pycharm 2019-3-3 ...

  10. python爬取王者荣耀英雄的背景故事

    文章目录 前言 目标数据源分析 代码实现过程 1.代码框架 2.获取英雄编号及名称数据 3.获取英雄故事数据 完整代码 我只用了四个函数,<王者荣耀>就把每个英雄的背景故事递给了我 前言 ...

最新文章

  1. 深入实践Spring Boot1.3.2 一个简单的实例
  2. 【Oracle 学习笔记】Day 2 视图、序列、同义词
  3. 麒麟810怎么样_华为麒麟810这个跑分,让我意外
  4. 最优二叉树——哈夫曼树
  5. P3178 [HAOI2015]树上操作
  6. 飞畅科技告诉你什么是集成串口服务器POE交换机?
  7. 七乐彩中奖规则表_【开奖】双色球第2020094期开奖结果出炉!你中奖了吗?
  8. java将图片转byte存入数据库_Java将byte[]转图片存储到本地的案例
  9. 面试:高并发系统设计
  10. java接口构造函数_Java8自定义函数式编程接口和便捷的引用类的构造器及方法
  11. mysql登录报错error1045,mysql创建登录报错ERROR1045(28000)
  12. STM32工作笔记0015---STEMWIN在STM32F1开发板上的移植
  13. 资源丨用PyTorch实现Mask R-CNN
  14. Visual C++ 2008入门经典 第二十一章更新数据源
  15. BURP安装Turbo Intruder插件报错问题
  16. 计算机等级考试攻略:四级网络工程师
  17. 关于新手做ASO的一些方法和技巧
  18. SQL项目-IOS 应用商店分析
  19. Sentinel流量防控卫兵
  20. 1、Neural Rendering

热门文章

  1. java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType的解决方案之一
  2. 驾考科目二考试经验谈
  3. 老男孩教育 | 从小白进军IT,他仅用了四个月的时间!
  4. 正则表达式反解析测试工具
  5. ajax串数组包含双引号,解决AJAX请求中含有数组的办法
  6. 工作积累10——推荐一本看过最好的数据分析的书
  7. 护网笔记(三)-Windows基础、常用服务和入侵排查
  8. 用Burpsuite破解网站密码
  9. CSS总结1-来自freecode
  10. 简单计算器 求一元二次方程的根