【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代码对应的页面 如下图所示,我们一般情况可以通过该顺序 ...
随机推荐
- Redis 由浅入深
1.redis是什么? redis是nosql(也是个巨大的map) 单线程,但是可处理1秒10w的并发(数据都在内存中) 使用java对redis进行操作类似jdbc接口标准对mysql,有各类实现 ...
- 基于Metronic的Bootstrap开发框架--资产编码打印处理
在开发业务管理系统的时候,往往涉及到资产信息及编码的打印处理,如我们需要对资产信息.条形码.二维码一起打印,以便贴在具体资产信息上面,方便微信公众号.企业微信进行业务处理,那么编码的打印就很有必要了, ...
- Windows rundll32的用法-批处理管理打印机
用法: rundll32 printui.dll,PrintUIEntry [options] [@commandfile] /a[file] 二进制文件名 /b[name] 基本打印机名 /c[na ...
- 一入OI深似海 4 —— 纪念我最后一次PJ(中)
不知道怎么回事,直到比赛前10分钟才放我们进考场. 考场在体育馆里面,很大很壮观. 我匆匆忙忙地找到位子,屁股还没坐热,被老师告知不能带水. what?! 于是我只好把水放在统一放私人物品的地方. 电 ...
- [官网]Windows modules
Windows modules https://docs.ansible.com/ansible/latest/modules/list_of_windows_modules.html win_acl ...
- python监控机器(第1版)
# coding:utf-8 import configparser import logging import os import psutil import ctypes import platf ...
- git总结二、关于分支上——好好认识下分支是怎么回事
同样需要先来明确两件事: HEAD指针指向的是当前分支 分支(master, dev)指向的是最新的提交 一开始,git 中只有一个master分支,严格来讲,HEAD不是指向提交而是指向master ...
- React Native & app demos
React Native & app demos https://github.com/ReactNativeNews/React-Native-Apps https://github.com ...
- 浅析Java的Object类
前言: 最近在回顾Java基础,在此过程中,查看源码是少不了的 这里以JDK8以基准,记录一些自己查看源码的观感 Object类,翻阅源码,看看这个类的所在位置,是在 java.lang 包下 ...
- SpringBoot自动装配源码解析
序:众所周知spring-boot入门容易精通难,说到底spring-boot是对spring已有的各种技术的整合封装,因为封装了所以使用简单,也因为封装了所以越来越多的"拿来主义" ...