文章目录

  • 文章导语
  • 实现过程
  • 文章结语

文章导语

今年暑假系里给每个同学布置了一篇学年论文,就想着怎么也得弄点数据撑撑排面吧,一开始我是不想爬的,然后就在网上各种找接口,找了半天,不是不能用就是获取的数据只是实时的,无法获得历史数据,哎,既然没办法,就只能爬了,顺便就在一个群里问了一下端口的事,然后开始准备工作,等网页分析完了,开始敲代码的时候,又看了一下手机,有个道友说tushare里面有接口,虽然tushare用了也挺多次吧,但是没发现有汇率的接口啊,我又抱着希望去看了看,果不其然,还真有。但是回头一想,网页都分析完了,干脆写完得了。二话不说,写吧!

实现过程

#! /usr/bin/env/ python
# -*- coding:UTF-8 -*-
# Author: Zhu Huarenimport requests
from lxml import etree
import time
import xlrd
from xlutils.copy import copyproxy = {'HTTP': 'HTTP://180.125.70.78:9999','HTTP': 'HTTP://117.90.4.230:9999','HTTP': 'HTTP://111.77.196.229:9999','HTTP': 'HTTP://111.177.183.57:9999','HTTP': 'HTTP://123.55.98.146:9999',}
row = 0
for n in range(1,50):  #  抓取页码范围form_data = {'erectDate': '2009-07-01','nothing': '2019-07-08','pjname': '1316',  # 美元兑人民币代码,修改此代码可获得其他货币兑人民币汇率'page': n,}url = 'http://srh.bankofchina.com/search/whpj/search.jsp'res = requests.post(url=url, data=form_data,proxies=proxy)html = etree.HTML(res.text)for j in range(2, 22):m_n = html.xpath('//tr[{}]/td[1]/text()'.format(j))s_e_p = html.xpath('//tr[{}]/td[2]/text()'.format(j))c_p = html.xpath('//tr[{}]/td[3]/text()'.format(j))s_e_sp = html.xpath('//tr[{}]/td[4]/text()'.format(j))c_s = html.xpath('//tr[{}]/td[5]/text()'.format(j))bank_count_p = html.xpath('//tr[{}]/td[6]/text()'.format(j))date = html.xpath('//tr[{}]/td[7]/text()'.format(j))row = row + 1workbook = xlrd.open_workbook('money.xls')  # 创建工作表workbook_copy = copy(workbook)  # 向工作表内追加内容worksheet = workbook_copy.get_sheet(0)worksheet.write(0, 0, '货币名称')worksheet.write(0, 1, '现汇买入价')worksheet.write(0, 2, '现钞买入价')worksheet.write(0, 3, '现汇卖出价')worksheet.write(0, 4, '现钞卖出价')worksheet.write(0, 5, '中行折算价')worksheet.write(0, 6, '发布时间')worksheet.write(row, 0, ''.join(m_n))  # 将列表格式转换为字符串worksheet.write(row, 1, ''.join(s_e_p))worksheet.write(row, 2, ''.join(c_p))worksheet.write(row, 3, ''.join(s_e_sp))worksheet.write(row, 4, ''.join(c_s))worksheet.write(row, 5, ''.join(bank_count_p))worksheet.write(row, 6, ''.join(date))workbook_copy.save('money.xls')print('第{}页爬取完成...'.format(n))
time.sleep(1)

获取数据的界面

获取的数据,我就先爬了1000多条,等用的时候再爬吧。

文章结语

最后我再说说我踩的坑吧,第一个就是在网页开发工具上复制的xpath路径竟然不能直接用,比如说这个把,复制xpath路径的时候,它会自动优化,把一些网页源码没有的节点自动补齐,当你用这个路径提取内容的时候肯定提取不出来。还有一个就是追加写入Excel,这个就不多说了吧。
总结下来一句话:
只有当你踩的坑多了,你才有机会踩下一个坑,否则你连下一个坑都见不到。

抓取人民币汇率—数据来源(中国银行网站)相关推荐

  1. 系统检测到您正在使用网页抓取工具访问_从网站抓取数据的3种最佳方法

    halo,大家好,我是特仑苏,今天呢给大家分享一些Python从网站抓取数据的一些方法,希望可以给大家带来一些帮助! 原作者:Octoparse团队 原出处:作品文(从网站抓取数据的3种最佳方法)/网 ...

  2. Python 爬虫篇#笔记02# | 网页请求原理 和 抓取网页数据

    目录 一. 网页请求原理 1.1 浏览网页的过程 1.2 统一资源定位符URL 1.3 计算机域名系统DNS 1.4 分析浏览器显示完整网页的过程 1.5 客户端THHP请求格式 1.6 服务端HTT ...

  3. 抓取百万数据,我们深扒了风口上的OYO酒店

    声明:本文调查方法采用"增长工程学"理论框架.该调查与第三方均无任何利益关系,为增长黑盒独立完成,仅用于行业研究参考和学术交流. 大家好,我是增长黑盒团队的新成员Miao.最近,经 ...

  4. 数据抓取之数据抓取流程

    公司的数据抓取系统也写了一阵子了,是时候总结下了,不然凭我的记性,过一段时间就忘的差不多了.打算写一个系列将其中踩过的坑都记录下来.暂时定一个目录,按照这个系列来写: 数据抓取流程,以公示网四川为例子 ...

  5. cookie追加数据_集算器 SPL 抓取网页数据

    [摘要] 集算器 SPL 支持抓取网页数据,根据抓取定义规则,可将网页数据下载到在本地进行统计分析.具体定义规则要求.使用详细情况,请前往乾学院:集算器 SPL 抓取网页数据! 网站上的数据源是我们进 ...

  6. 爬虫抓取页面数据原理(php爬虫框架有很多 )

    爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...

  7. web scraper 抓取网页数据的几个常见问题

    如果你想抓取数据,又懒得写代码了,可以试试 web scraper 抓取数据. 相关文章: 最简单的数据抓取教程,人人都用得上 web scraper 进阶教程,人人都用得上 如果你在使用 web s ...

  8. Linux使用tcpdump抓取网络数据包示例

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...

  9. iOS开发——网络使用技术OC篇网络爬虫-使用正则表达式抓取网络数据

    网络爬虫-使用正则表达式抓取网络数据 关于网络数据抓取不仅仅在iOS开发中有,其他开发中也有,也叫网络爬虫,大致分为两种方式实现 1:正则表达 2:利用其他语言的工具包:java/Python 先来看 ...

最新文章

  1. 云计算对中小企业的大冲击
  2. 垃圾回收机制之标记压缩算法与分代算法
  3. C++学习笔记:(九)输入/输出流
  4. Linux 权限、磁盘操作命令-Linux基础环境命令学习笔记
  5. 【git clone 报错】fatal: unable to access ‘https://github.com/zimeng303/React.git/‘: Failed to connect
  6. 逐渐显示的按钮和图片上下切换
  7. 超越cookie - 使用DOM sessionStorage和localStorage来保存更多信
  8. python操作数据库的几种方法_Python操作MySQL数据库的三种方法总结
  9. mysql在网页上显示乱码_计算机毕设答辩时网页报错怎么办
  10. JavaScript 中级篇:模块化编程
  11. C语言 判断上三角矩阵
  12. hash冲突(碰撞)及解决方法
  13. 手机计算机数据消失了怎么恢复,手机数据丢失的恢复方法
  14. 泛化误差,偏差方差分解
  15. Flutter TextField(文本输入)使用填坑
  16. 论文阅读:Seg4Reg+: Consistency Learning Between Spine Segmentation and Cobb Angle Regression
  17. mallplus多商户商城全流程 操作文档
  18. 网络营销策略——4P
  19. 为了推动仓库无纸化操作我们做了什么?
  20. 如何用PS去掉照片中的路人

热门文章

  1. Move Hurst Computer 移动平均赫斯特指数计算
  2. Android Room 使用指南
  3. php 简转繁体,PHP_简体中文转换为繁体中文的PHP函数,感谢网友Keyes提供移植用的Delph - phpStudy...
  4. Sans Serif Serif Monospace
  5. Library auk_dspip_lib not found问题解决
  6. 推荐一款我自己写的房屋贷款计算器软件
  7. Python的 100道题目
  8. 左侧导航菜单 子菜单的显示隐藏效果
  9. Word处理控件Aspose.Words功能演示:使用 C++ 以编程方式将 Word 转换为 HTML 、MHTML
  10. 2022-2027年中国政府投融资平台行业发展前景及投资战略咨询报告