「工资翻三倍」系列:Python爬虫初体验一秒钟完成老板交代的工作

Python爬虫一直是很多朋友感兴趣的话题,也是自动化技术必备的技能。

今天下班的时候老板给小王交代了一个任务:整理外汇实时牌价打印出来。

小王忙着参加朋友聚会,女朋友已经在楼下等着了...

心里着急,毕竟刚入职又不敢抗议,怎么办呢?

幸好,小王电脑有现成的Python爬虫程序,抓取网站实时外汇牌价就是一秒钟的事情。

来看看小王的代码,先导入库

from urllib.request import urlopen
from bs4 import BeautifulSoup

读取目标网页的数据:

r = urlopen('http://www.boc.cn/sourcedb/whpj').read()  
# 读取网页信息获得字节流
运行后得到的一串看不懂的字符:

里面有很多网页的原代码,我们需要调用BeautifulSoup库来美化一下这些数据,增加一行代码:

r = BeautifulSoup(r, features='lxml')  # 美化读取的信息
print(r)

运行:

这下,有点网页基础的朋友大体能看懂了,不过离我们想要的结果还有点远。

我们打开网页原代码查看,发现数据都包含在<table>标签里面:

增加以下代码:

r = r.find_all('table')[1]  # 读取table内需要的内容
print(r)

注意,[1]表示该网页的第二个<table>标签,以此类推,运行:

渐入佳境,对不对?离我们想要的结果越来越近了。我们只要取得<tr>标签里面的数据,就算大功告成,继续添加代码:

r = r.find_all('tr')  # 取得tr标签内的内容
print(r)

得到结果:

显然,红色的框内不是我们想要的内容,黄色的框里面才是我们想要的。添加代码删除第一个内容:

r.pop(0)  # 删除数组的第一个表头内容
print(r)

结果:

以下都是我们想要的数据了,现在需要一个循环语句把这些数据提取出来就可以:

for i in r:
    all_td = i.find_all('td')  # 通过循环找到td标签的内容
    print(f'{all_td[0].text}     卖出价:{all_td[4].text}   买入价:{all_td[2].text}')  
    # 逐行打印读取到的内容
通过循环读取<td>标签里面的内容,去除文字内容用.text方法:

是不是很简单?全部代码如下:

from urllib.request import urlopen
from bs4 import BeautifulSoup

r = urlopen('http://www.boc.cn/sourcedb/whpj').read()  # 读取网页信息获得字节流
r = BeautifulSoup(r, features='lxml')  # 美化读取的信息
r = r.find_all('table')[1]  # 读取table内需要的内容
r = r.find_all('tr')  # 取得tr标签内的内容
r.pop(0)  # 删除数组的第一个表头内容
for i in r:
    all_td = i.find_all('td')  # 通过循环找到td标签的内容
    print(f'{all_td[0].text}     卖出价:{all_td[4].text}   买入价:{all_td[2].text}')  # 逐行打印读取到的内容
    pass
剩下的事情就是将这些数据写入一个文本文档或者Excel文件发微信。

下班,88...

记得收藏起来,说不定哪天你就能用上!

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值