我是靠谱客的博主 苹果冬瓜,最近开发中收集的这篇文章主要介绍python 动态加载代码_python获取动态网站上面的动态加载的数据(初级),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们在处理一些网站数据的时候,有时候我们需要的数据很多都是动态加载的,而不都是静态的,以下以一个实例来介绍简单的获取动态数据,首先申明本人小白,还在学习python中,这个方法还是比较笨拙的,但是对于初学者还是需要知道的。

首先我们的要求是获取下面文章的参考文献:

1206020-20170812202744757-233301839.png

刚刚开始,我的想法是使用lxml、BeatifulSoup、正则表达式来处理,这几个是处理静态网站的常用方法,查看网页源码我们会发现相应的div里面是空,也就是说上面的数据不是静态的,而是后面动态加载的,利用googl浏览器可以看到:

1206020-20170812203515148-1053092890.png

标记的三个对应了网站里面的相似文献、参考文献、引证文献,我们需要的是参考文献,所以点击第二个:

1206020-20170812203819007-1116092791.png

我们可以看到数据就在里面,然后点击Header,复制里面的URL:

1206020-20170812204114742-1521405912.png

利用下面的代码就可以获取相应的数据了:

#-*- coding:utf-8 -*-

importrequests

url='http://xueshu.baidu.com/usercenter/data/schpaper?callback=jQuery110208239584223582068_1502539053728&wd=citepaperuri%3A(17d24f9533609a132a16703fde60ce19)&req_url=http%3A%2F%2Fwww.oalib.com%2Fpaper%2F4015889&type=reference&rn=10&page_no=1'data=requests.get(url)print data

但是如果要获取所有的参考文献怎么办,我们不能一个链接一个链接的复制,那不就特别麻烦,下面是代码的改进,首先我们要知道总共有多少页参考文献,也就是URL里面的page_no的·值,以下为改进的代码:(其实我们也可以直接估计有50页参考文献,然后使用try。。。except。。。来获取异常也是可以的)

#-*- coding:utf-8 -*-

importrequests

n=相关页数

url='http://xueshu.baidu.com/usercenter/data/schpaper?callback=jQuery110208239584223582068_1502539053728&wd=citepaperuri%3A(17d24f9533609a132a16703fde60ce19)&req_url=http%3A%2F%2Fwww.oalib.com%2Fpaper%2F4015889&type=reference&rn=10&page_no='

for i in range(1,n+1):

data=requests.get(url+str(i))print data

返回值是json格式的,剩下的就是处理json格式了(记得除去返回的多余数据),参见:http://www.cnblogs.com/ybf-yyj/articles/7351580.html。

以下贴上所有代码:

#-*- coding:utf-8 -*-

importrequestsimportreimportjsondefget_reference(url):

data=requests.get(url)

json_datas=data.content#使用贪婪算法的正则表达式获取json类型的字符串

json_data = re.compile(r"{.*}")

json_data=json_data.search(json_datas).group()#将获取的json字符串转化为字典

title_data=json.loads(json_data)

n=title_data.get('data').get("resultList")for i inrange(0,len(n)):try:print 'reference:',print n[i].get('meta_di_info').get('sc_title')[0]for i in n[i].get('meta_di_info').get('sc_author'):print i.get('sc_name')[1]+u',',print 'n'

except:printi

n=4url='http://xueshu.baidu.com/usercenter/data/schpaper?callback=jQuery110204974031490917943_1502604841329&wd=citepaperuri%3A(0689fe98fd34a1aac82d41225ad9ceca)&req_url=http%3A%2F%2Feuropepmc.org%2Fabstract%2Fmed%2F24235252&type=reference&rn=10&page_no='

for i in range(1,n+1):

get_reference(url+str(i))

最后

以上就是苹果冬瓜为你收集整理的python 动态加载代码_python获取动态网站上面的动态加载的数据(初级)的全部内容,希望文章能够帮你解决python 动态加载代码_python获取动态网站上面的动态加载的数据(初级)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部