# 20194115 2019-2020-2 《Python程序设计》实验四报告
课程:《Python程序设计》
班级: 1941
姓名: 刘奕辉
学号:20194115
实验教师:王志强
实验日期:2020年6月14日
必修/选修: 公选课
## 1.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
## 2. 实验过程及结果
#本次实验采用爬虫的形式进行(其实是只会这个)
考虑到自我理财的可能性,本次选择了中国基金业协会的网站进行爬取,希望能够实现资产的合理增值/笑哭
可能是数据太多的原因,部分网页在打开的时候会有一段时间的卡顿与等待确认的情况,因此我们优先选择对这类型进行爬取
爬取内容选择上月证券公司集合资管产品公示的内容
其中有编号,产品名称,产品编码,管理人或公司名称,成立,结束日期,计划类型等
话不多说,直接代码奉上如下:
# coding: utf-8
import time
import json
import requests
sdate = '2020-05-01'
edate = '2020-05-31'
data = {
"foundDateFrom": sdate,
"foundDateTo": edate,
"mgrName": "",
"productCode": "",
"productName": ""
}
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
"Content-Type": "application/json"
}
n = 0
while True:
url = 'http://gs.amac.org.cn/amac-infodisc/api/pof/securities?rand=0.9789921463496325&page={}&size=20'.format(n, )
req = requests.post(url, data=json.dumps(data), headers=headers)
content = req.json().get('content')
n += 1
if content:
for c in content:
pid = c.get('id')
cpmc = c.get('cpmc')
cpbm = c.get('cpbm')
gljg = c.get('gljg')
slrq = c.get('slrq')
dqr = c.get('dqr')
tzlx = c.get('tzlx')
sffj = c.get('sffj')
tgjg = c.get('tgjg')
print(pid, cpmc, cpbm, gljg, slrq, dqr, tzlx, sffj, tgjg)
time.sleep(0.3)
else:
print('已爬完')
break
time.sleep(2)
以下是本次运行的截图
## 3. 实验过程中遇到的问题和解决过程
- 问题1:曾经把headers写错好长时间,一直运行得不到数据
- 问题1解决方案:自己没有解决。。。。。。是跟同学吐槽的时候同学给指出的
## 其他(感悟、思考等)
感觉在python课上还是学到了不少东西,从最早的print(“人生苦短,我用python”)一直到现在,感觉比较起身边的有的在学C、学Java的同学,python相对来说对于他们而言还是好上手一些,尤其是面对对象这种简单粗暴的模式简直深得我心。对于我作为一个文科生来说,也算是为我打开了编程的一个大门吧,许多看起来十分复杂、艰难的操作起码不再那么遥不可及,至少能看得见通向终点的路。更多的也是培养了一种理科生的思维吧、同时也磨炼了许多我们的性子,刚开始学习的时候连续运行个几十次全报错气的想砸电脑的自己慢慢的也温和起来,有了那么几分成长的意思。唯一想对老师提的意见是,上课的时候老师在讲课过程中拿c语言举过例子能不能再稍稍讲点更通俗点的解释,大约只是对于我们文科生来说,“这个环节就相当于你们c语言的xxx”约等于“哦颤抖吧凡人们,你们暴毙的时刻就要来了”这样芭