标签:源代码 网页 vol 爬取 print date 可转债 集思录 数据
大家好,这里是滑稽研究所,干活了干活了。本期我需要爬取集思录网站的可转债等权指数里成交额的数据。
我们浏览整个网页之后发现曲线中的数据会以表格的形式出现在网页下方,如下。
对比数据之后发现表格数据与曲线数据相等。那我们直接爬取表格里的数据。通过检查网页源代码之后发现,可以直接知道数据,也就是说不需要抓取json数据了。
进一步观察数据发现,这些数据并不是像往常一样放在一个个规范的HTML标签中的,和在开发者模式中呈现的形式不同。
但爬取下来的网页是源代码的形式,因此判断使用xpath是无法正确的匹配到我们需要的数据的。因此这次选择采用正则表达式的方式来匹配数据。到这里思路整理完毕,剩下的就是对数据的筛选以及一些格式上的转换,我们都放在代码中处理。
源代码:
from bs4 import BeautifulSoup
import requests
import re
web_url = 'https://www.jisilu.cn/data/cbnew/cb_index/'
header = {
"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16"}
html = requests.get(url=web_url, headers=header).text # 不加text返回的是response,加了返回的是字符串
Soup = BeautifulSoup(html, "lxml")
xxx = str(Soup)
res1 = re.findall('date.*', xxx)
date = res1[0].replace('date = ', '').replace('\'', '')
date = date.split(',')
#print(date)
# 匹配成交额
res2 = re.findall('volume.*]', xxx)
vol = res2[0].replace('volume\' : ', '')
vol = vol.split(',')
#print(vol)
zipped = list(zip(date, vol))
print('单位亿元。')
for i in zipped:
print(i)
print(input('输入q之后,回车退出程序:'))
因为最后要打包成exe文件,所以最后一行代码是用来保证程序在cmd中运行完不会闪退,当然你也可以选择使用time模块。下面是程序运行结果。
经验证数据无误,原数据是3位有效小数,页面上是取了2位。至此任务完成。只需单击exe文件,程序就会自动运行。简单好用。
标签:源代码,网页,vol,爬取,print,date,可转债,集思录,数据 来源: https://blog.csdn.net/weixin_45067072/article/details/120256620
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。