【FF14】工匠配方爬取
目标:爬取最终幻想14工匠配方到excel表格。(一个装修仔的尊严)
代码:
from bs4 import BeautifulSoup
import urllib.request
import xlwt
from xlwt import * file = Workbook(encoding='utf-8')
key = ['物品名称', '材料', '数量'] fnt = Font()
fnt.name = u'微软雅黑'
style = XFStyle()
style.font = fnt
style.alignment.horz = xlwt.Alignment.HORZ_CENTER
style.alignment.vert = xlwt.Alignment.VERT_CENTER lvRange = []
for x in range(14):
x0 = x * 5 + 1
x1 = x0 + 4
lvRange.append(str(x0) + '-' + str(x1)) print(lvRange) def downlaoding(url, fn, lv): table = file.add_sheet(fn + lv)
html_doc = urllib.request.urlopen(url).read().decode('utf-8')
soup = BeautifulSoup(html_doc, 'html.parser') # 物品数量
item_name = [] # 物品材料
item_material = []
item_num = []
item_material_count = [] # 获取数据
for q in soup.find_all('tr', class_='filter-div--item'):
for u in q.find_all('div', class_='item-name rarity-common'):
u0 = u.find('a').string
item_name.append(u0)
for u in q.find_all('div', class_='item-name rarity-uncommon'):
u0 = u.find('a').string
item_name.append(u0) # 材料
count01 = 0
for k in q.find_all('td', class_='table--dark-m'):
for h in k.find_all('span', class_='item-name'):
h0 = h.find('a').string
item_material.append(h0)
count01 += 1 for w in k.find_all('span', class_='item-number'):
w0 = w.text
item_num.append(w0) item_material_count.append(count01) # 写入数据
# 列名
num = 0
for c in range(len(key)):
table.write(0, num, key[c], style)
num += 1 # 写入物品名
col = 0
row = 1
n = 0 for x in range(len(item_name)):
row0 = row
row += item_material_count[x]
table.write_merge(row0, row-1, col, col, item_name[x], style) # 写入物品材料名称和数量
col = 1
row = 1
for x in range(len(item_material)):
table.write(row, col, item_material[x], style)
table.write(row, col + 1, item_num[x], style)
row += 1 table.col(0).width = 5000
table.col(1).width = 5000 # 保存sheet
file.save('配方统计.xlsx') for x in range(len(lvRange)):
downlaoding("http://ff14.huijiwiki.com/wiki/%E5%88%BB%E6%9C%A8%E5%8C%A0/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '刻木', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/刻木匠/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E9%94%BB%E9%93%81%E5%8C%A0/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '锻铁', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/锻铁匠/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E9%93%B8%E7%94%B2%E5%8C%A0/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '铸甲', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/铸甲匠/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E9%9B%95%E9%87%91%E5%8C%A0/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '雕金', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/雕金匠/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E5%88%B6%E9%9D%A9%E5%8C%A0/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '制革', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/制革匠/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E8%A3%81%E8%A1%A3%E5%8C%A0/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '裁衣', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/裁衣匠/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E7%82%BC%E9%87%91%E6%9C%AF%E5%A3%AB/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '炼金', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/炼金术士/配方/" + (lvRange[x]))
downlaoding("http://ff14.huijiwiki.com/wiki/%E7%83%B9%E8%B0%83%E5%B8%88/%E9%85%8D%E6%96%B9/"+str(lvRange[x]), '烹调', lvRange[x])
print("http://ff14.huijiwiki.com/wiki/烹调师/配方/" + (lvRange[x]))
效果图:

【FF14】工匠配方爬取的更多相关文章
- python爬取安居客二手房网站数据(转)
之前没课的时候写过安居客的爬虫,但那也是小打小闹,那这次呢, 还是小打小闹 哈哈,现在开始正式进行爬虫书写 首先,需要分析一下要爬取的网站的结构: 作为一名河南的学生,那就看看郑州的二手房信息吧! 在 ...
- 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕
年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,<我是余欢水>和<清平乐>,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算 ...
- Scrapy框架爬虫初探——中关村在线手机参数数据爬取
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
- python爬取github数据
爬虫流程 在上周写完用scrapy爬去知乎用户信息的爬虫之后,github上star个数一下就在公司小组内部排的上名次了,我还信誓旦旦的跟上级吹牛皮说如果再写一个,都不好意思和你再提star了,怕你们 ...
- Python多线程爬虫爬取电影天堂资源
最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...
- python3爬取1024图片
这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章.各种开源软件.各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作 ...
- 从爬取湖北某高校hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;
原创文章与源码,如果转载请注明来源. 开发环境:Myeclipse,依赖包:apache-httpclient . Jsoup.base64 一.概述 整个系统用Java开发.我们现在要做的是类似于超 ...
- 使用beautifulsoup与requests爬取数据
1.安装需要的库 bs4 beautifulSoup requests lxml如果使用mongodb存取数据,安装一下pymongo插件 2.常见问题 1> lxml安装问题 如果遇到lxm ...
- python爬虫学习(7) —— 爬取你的AC代码
上一篇文章中,我们介绍了python爬虫利器--requests,并且拿HDU做了小测试. 这篇文章,我们来爬取一下自己AC的代码. 1 确定ac代码对应的页面 如下图所示,我们一般情况可以通过该顺序 ...
随机推荐
- 标识符and数据类型
一,标识符 1.标识符用来给类,变量,包,方法等起名字的. 2.只能由字符,下滑线,美元符组成:这里的字符有大小写字母,中文字符,数字字符,但是符号只能有两个下划线和美元符. 3.不能由数字开头. 4 ...
- IBM developer:Kafka ACLs
Overview In Apache Kafka, the security feature is supported from version 0.9. When Kerberos is enabl ...
- ASP.NET MVC 下自定义模型绑定,去除字符串类型前后的空格
直接贴代码了: SkyModelBinder.cs using System.ComponentModel; using System.Linq; using System.Web.Mvc; name ...
- 利用 keras_proprecessing.image 扩增自己的遥感数据(多波段)
1.keras 自带的 keras_proprecessing.image 只支持三种模式图片(color_mode in ['grey', 'RGB', 'RGBA'])的随机扩增. 2.遥感数据除 ...
- css简单的一些基础知识
css层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS不仅可 ...
- 类 Random
什么是Random类 此类的实例用于生成伪随机数 Random使用步骤 查看类 java.util.Random :该类需要 import导入使后使用. 查看构造方法 public Random() ...
- 一、commander
#!/usr/bin/env node const program = require('commander'); const colors = require('colors'); const pk ...
- django 之MTV模型
一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model(模型):和数据库相关的,负 ...
- Python爬虫beautifulsoup4常用的解析方法总结
摘要 如何用beautifulsoup4解析各种情况的网页 beautifulsoup4的使用 关于beautifulsoup4,官网已经讲的很详细了,我这里就把一些常用的解析方法做个总结,方便查阅. ...
- 拒绝回调,拥抱async await
之前使用jquery中ajax,请求的结果需要写在回调函数里面,后面接触到了axios/fetch,使用了es6中Promise进行封装,这种链式结构调用,看起来比之前直观,可是还是没有解决回调的问题 ...