python获取动态网站上面的动态加载的数据(初级)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python获取动态网站上面的动态加载的数据(初级)相关的知识,希望对你有一定的参考价值。

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

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

 

 

技术分享

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

技术分享

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

技术分享

 

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

技术分享

 

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

#-*- coding:utf-8 -*-
import requests
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 -*-
import requests

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。

以上是关于python获取动态网站上面的动态加载的数据(初级)的主要内容,如果未能解决你的问题,请参考以下文章

Python下利用Selenium获取动态页面数据

网页滚动条滚动到一定位置后,加载数据,而且数据是由动态效果的怎么做?

python爬取iframe动态加载的内容

使用selenium爬取网站动态数据

自己写了一个爬虫,求教如何在网页上爬取动态加载的信息。

Selenium/python:每次滚动后从动态加载的网页中提取文本