vs2015编写python爬虫_使用Python抓取网页数据(一)

iOS python 爬虫 LoL

学习iOS开发有一段时间了,最近想做一个自己的App玩玩,自己比较喜欢玩LOL,所以想试着做一个LOL资料库的App,那么问题来了,这么多英雄,物品等数据怎么获取呢,总不能自己手敲吧。身为一个程序猿,这种事情怎么能自己来做呢。这时候就可以祭出神器Python了,我们直接进入主题。

一、 寻找数据

要想获取数据,首先得找到哪里有数据,各大游戏媒体网站都有自己的资料库,这里我选择官方的资料库,地址: LOL官方资料库 。

2c473c2324ad

[LOL官方资料库](http://lol.qq.com/web201310/info-heros.shtml)

英雄,物品,技能,符文,天赋都有了,数据也是最新的。OK,猎物找到了,开始狩猎之前还要做一些准备。

二、 准备工作

浏览器:我们需要用浏览器查看网页源码,Safari 和 Chrome 都可以,这里我选择Safari,感觉 Safari 的元素查看更方便一点,可以快速定位到我们需要的地址。Safari默认没有“开发”选项,需要到“偏好设置”-“高级”中勾选

2c473c2324ad

显示“开发”菜单

编辑器:写代码当然得需要编辑器了,我使用的是 VS Code,是微软推出的一个编辑器,风格也是我喜欢的,但是比较蛋疼,没有 Python 的自动补全,也可能需要下载其他插件或工具才可以。反正我这里我也不用了,有知道的伙伴还请多多赐教。不过 VS Code 使用起来感觉还是不错的。推荐试试

2c473c2324ad

VS Code

调试工具:我没有使用 Python 自己的 IDE,而 VS Code 也只是编辑器而已,调试就不行了,所以我这里直接使用 OS X 的终端调试,毕竟感觉diaodiao哒~,调试时只需要cd到python文件目录,执行命令

python filename.py

库:做网络爬虫,需要一些Python的库。有些 Python 自带,有些还需要自己下载,下载可以使用 pip 或 easy_install,这两个工具都需要另外下载,可参考我的另一篇简书OS X下Pip的安装,具体需要什么库我们使用时再说。

万事俱备

三、 网页分析

我们所要抓取的数据有图片、文字或文件,图片和文件一般都是一个地址,文字可能存在于文件,也可能直接写在网页源码中。所以,我们先对网页进行分析,熟悉战场。

在Safari中打开 LOL官方资料库,点击菜单“开发”-“显示页面源文件” 或 按快捷键 alt+command+a/u,进入开发者工具,点击“元素”标签

2c473c2324ad

safari开发者工具

在我们把鼠标移动到不同行代码时,网页中当前代码对应的元素会被选中,这可以帮助我们快速定位到关键代码,我们先试着找到 九尾妖狐 头像的图片地址,如上图所示

1588b937faa57c1722ff034d624e6699.png

四、小试牛刀

现在我们就来试试把这张图片下载到本地。

创建Python文件,可以使用VSCode新建空白文件,保存时后缀为.py,也可以在终端执行命令

cd Desktop/ //进入Desktop文件夹

touch filename.py //在当前文件夹内新建文件

用编辑器打开文件,编写代码:

#-*-coding:utf8-*-

import os, requests

img_url = "http://ossweb-img.qq.com/images/lol/img/champion/Ahri.png"

# 截取文件名

img_name = os.path.basename(img_url)

# 下载图片

img = requests.get(img_url)

# 打开本地文件

# 'wb'表示以二进制写入模式打开文件

file = open('/Users/apple/img//' + img_name, 'wb')

# 写入文件

file.write(img.content)

# 关闭文件

file.close

这里用到两个库,os和requests库,os python本身自带,requests需要手动下载,在终端执行

pip install requests

这是一个简单的下载和保存的例子,不过已经可以满足我们的需求了,只需要稍作修改就能完成我们的目标了。

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值