Python抓取第一网贷中国网贷理财每日收益率指数
来源:互联网 发布:素媛真实事件结局知乎 编辑:程序博客网 时间:2024/04/29 05:06
链接:http://www.p2p001.com/licai/index/id/147.html
所需获取数据链接类似于:http://www.p2p001.com/licai/shownews/id/454.html:
库:
requests (For human)
re (正则)
pandas (用来处理数据)
BeautifulSoup (用来解析网页文本)
此次抓取逻辑思维在代码之后
上代码:
#coding utf-8import requestsimport reimport pandasfrom bs4 import BeautifulSoupuser_agent = 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)'headers = {'User-Agent':user_agent}#定义函数,得到每日报的链接,并以列表形式返回def get_newsurl(): newsurl=[] url1='http://www.p2p001.com/licai/index/id/147/p/' num=1 url2='.html' while num<=22: url=url1+str(num)+url2 try: r1=requests.get(url,headers=headers) except: print ('wrong %s' % url) else: s1=BeautifulSoup(r1.text,'lxml') for x in s1.find_all(href=re.compile('licai/shownews')): newsurl.append(x['href']) num=num+1 return newsurl#定义函数,得到的数据,以字典形式返回def get_info(): url='http://www.p2p001.com' date=[] zonghe=[] one=[] one_three=[] three_six=[] six_twelve=[] twelve_most=[] for y in get_newsurl(): try: main_url=url+y r2=requests.get(main_url,headers=headers) except: print ('wrong %s' % main_url) else: s2=BeautifulSoup(r2.text,'lxml') date.append(s2.find(text=re.compile('统计日期'))[5:]) rate=s2.find_all('td') zonghe.append(rate[10].string) one.append(rate[11].string) one_three.append(rate[12].string) three_six.append(rate[13].string) six_twelve.append(rate[14].string) twelve_most.append(rate[15].string) p={'Date':date, '综合':zonghe, '1个月':one, '1-3个月':one_three, '3-6个月':three_six, '6-12个月':six_twelve, '12个月及以上':twelve_most} return p#pandas存储数据p=pd.DataFrame(get_info())
p.to_csv('f://1//rate1.csv',index=False,
columns=['Date','综合','1个月','1-3个月','3-6个月','6-12个月','12个月及以上'],
header=['Date','综合','1个月','1-3个月','3-6个月','6-12个月','12个月及以上'])
此次学习总结及反思:
1.为了方便处理,并没有使用数据库来存储数据,而是使用pandas将数据以csv格式保存在本地硬盘F
2.定义第一个函数对象get_newsurl,以列表形式返回理财指数日报链接,第二个函数遍历第一个函数的返回值,进行数据的采集
3.为什么不将pandas的一系列操作放在函数对象get_info中,从而直接完成一系列的操作呢?
当时考虑了效率和灵活性考虑。
one:如果将pandas的数据操作丢在get_info中,那么调用get_info()的时候,整个效率将会降低很多很多
two:拿出来单独处理,灵活性大大提高,调用get_info(),以字典形式返回我需要的数据,拿到这个数据后,我可以做任何我想做的处理,而不是用一个函数将整个采集下来的数据直接打入地牢,让这些数据没有了自由。
4.抓取思路
①先发现日报的链接规律,也就是说共有22页,每页20份日报指数数据,因为只做一次简单的抓取,所以这个值这个可以写死
这个就是第一个函数做的事,返回这些href的值
②进入具体的日报页面,抓取我们所需要的数据,并以字典形式返回
③处理并存储数据(pandas)
注明:数据来源于第一网贷http://www.p2p001.com/
小白一枚,能力有限,做的不好的地方,尤其是逻辑与思维上的东西,需要大神们看到了多多指教和斧正buddyquan。
QQ:1749061919 小白爬虫求带
0 0
- Python抓取第一网贷中国网贷理财每日收益率指数
- Python抓取第一网贷中国网贷理财每日收益率指数
- Python抓取第一网贷中国网贷理财每日收益率指数
- Python抓取第一网贷中国网贷理财每日收益率指数
- 【python爬虫】网贷天眼平台表格数据抓取
- 岁末年初,P2P网贷理财正当时
- 贷
- 东莞P2P网贷+P2P理财首选车道财富贷你走向财富人生
- 汇小贷O2O+P2P网贷加盟 互联网投资理财新思路
- 网贷推广宝致邦融理财推广运营专员的一封信
- P2P网贷理财需要注意的事项有哪些?
- 网贷高手都是怎么做理财的?
- P2P网贷中的4种理财业务模式
- 2015,我的投资理财策略(股权众筹+P2P网贷+活期理财)
- 齐放网:中国“尤努斯”的网贷试验
- 网贷系统P2P
- P2P网贷源码
- p2p网贷
- 远离舒适区!
- 安卓5.0到7.0的区别介绍
- 关于Unity3D的PC游戏窗口化时的分辨率解决方案
- jenkins Error performing command: git ls-remote -h
- 2016年JavaScript开发者需要了解的技能
- Python抓取第一网贷中国网贷理财每日收益率指数
- H5 引文, 引用, 及标签定义
- H5 引文, 引用, 及标签定义
- 高仿微信视差手势滑动返回库
- 谈谈sizeof strlen length的用法
- 第一周 Gaussian Model Learning
- HTML基础-Know-it-all
- 你好 世界
- Intent传递Bitmap