最近突然想到以前爬取百度学术上的参考文献,大家可以看一下以前我的写的博客:http://www.cnblogs.com/ybf-yyj/p/7351493.html,但是如果利用这个方法,太痛苦了,需要人工来复制粘贴,所以这里来介绍用selenium来实现这个功能,贴上代码:

#-*- coding:utf-8 -*-
from selenium import webdriver
import time
from bs4 import BeautifulSoup
#拼接url
titlename='Application of biosorption for the removal of organic pollutants: a review'
url_name=titlename.split(' ')
url='http://xueshu.baidu.com/s?wd='+'+'.join(url_name)
#打开Firefox
diver=webdriver.Firefox()
diver.get(url)
#防止引用太多,不断click,直到参考文献下不存在‘加载更多’
try: for i in range(0,50):
# 等待网站加载完成
time.sleep(0.2)
diver.find_elements_by_class_name('request_situ')[1].click()
except:
print '********************************************************'
#等到加载完成获取网页源码
time.sleep(10)
#使用BeautifulSoup获取参考文献
soup=BeautifulSoup(diver.page_source,'lxml')
items=soup.find('div',{'class':'con_reference'}).find_all('li')
for i in items:
print i.find('a').get_text()
#关闭网页
diver.close()

注意:

    代码中红色标注,本人因为这个错误,弄了半天

    本人遇到一个问题,每次第一次爬取,click事件不响应,利用断点查看发现又可以了,后面就都可以了,这个我要不知道为什么会这样

    chrome浏览器click事件也执行不了

如果大家不想看到浏览器出现,可以使用diver=webdriver.PhantomJS()替代diver=webdriver.Firefox()

以上的基础在于安装了PhantomJS、geckodriver.exe

python获取动态网站上面的动态加载的数据(selenium+Firefox)的更多相关文章

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

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

  2. Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢

  3. GitHub 网站上不去/加载慢/加载不全 解决办法

    1. 当你打开你的 GitHub 2. F12 进入检查页面,点击 network 3. 找到变红的字段右键复制连接 4. 打开 DNS 查询网站,输入你复制的网址,点击查询 5. 选择国内的 ip ...

  4. Learning Spark中文版--第五章--加载保存数据(2)

    SequenceFiles(序列文件)   SequenceFile是Hadoop的一种由键值对小文件组成的流行的格式.SequenceFIle有同步标记,Spark可以寻找标记点,然后与记录边界重新 ...

  5. js动态创建的select2标签样式加载不上解决办法

    js动态创建的select2标签样式加载不上:调用select2的select2()函数来初始化一下: js抛出了Uncaught query function not defined for Sel ...

  6. geotrellis使用(二十三)动态加载时间序列数据

    目录 前言 实现方法 总结 一.前言        今天要介绍的绝对是华丽的干货.比如我们从互联网上下载到了一系列(每天或者月平均等)的MODIS数据,我们怎么能够对比同一区域不同时间的数据情况,采用 ...

  7. Echarts使用及动态加载图表数据

    Echarts使用及动态加载图表数据 官网:http://echarts.baidu.com/ 1.文档 2.实例 名词: 1.统计维度(说明数据) 维度就是统计致力于建立一个基于多方位统计(时间.地 ...

  8. 使用 Cesium 动态加载 GeoJSON 数据

    前言 需求是这样的,我需要在地图中显示 08 年到现在的地震情况,地震都是发生在具体的时间点的,那么问题就来了,如何实现地震情况按照时间动态渲染而不是一次全部加载出来. 一. 方案分析 这里面牵扯到两 ...

  9. ListView下拉刷新,上拉自动加载更多

    下拉刷新,Android中非常普遍的功能.为了方便便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能.设计最初是参考开源中国的Android客户端源码.先看示例图.       ...

随机推荐

  1. javascript 字符数组转换成以逗号隔开的字符串

    var ids = [];angular.forEach(pulsarServers,function (server) { ids.push(server.id);});ids = ids.join ...

  2. IntelliJ IDEA 2017版 springloaded实现热部署

    1.配置pom.xml文档 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  3. POJ 3320 Jessica's Reading Problem (滑动窗口)

    题意:给定一个序列,求一个最短区间,使得这个区间包含所有的种类数. 析:最近刚做了几个滑动窗口的题,这个很明显也是,肯定不能暴力啊,时间承受不了啊,所以 我们使用滑动窗口来解决,要算出所有的种数,我用 ...

  4. (最小生成树 Prim) Highways --POJ --1751

    链接: http://poj.org/problem?id=1751 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1150 ...

  5. C++中的关键字用法---typename

    1. typename 关键字 "typename"是一个C++程序设计语言中的关键字.当用于泛型编程时是另一术语"class"的同义词.这个关键字用于指出模板 ...

  6. delphi API: SetWindowPos改变窗口的位置与状态

    SetWindowPos 函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序.子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序.顶层窗口设置的级别最高,并且被设置为Z序 ...

  7. http://www.cnblogs.com/xalion/p/5111279.html

    https://quality.embarcadero.com/secure/Dashboard.jspa 注册成 delphi qc

  8. SQL SERVER 2008 附加数据库出现只读问题。

    问题描述 在附加数据库时出现的图片:   解决办法 步骤一,修改文件夹的 1.打开该数据库文件存放的目录或数据库文件的属性窗口,选择"属性"菜单->选择"安全&qu ...

  9. Get User CustomNotificationAddresses

    select pv.StringValue, * from tbl_Identity    i left join tbl_PropertyValue pv on pv.ArtifactId=conv ...

  10. 数据分析融入至BI工具的新思路

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 很认同一种说法:BI对企业的作用不是BI本身,而是数据本身.那么BI的作用和意义是干什么的呢-是让有意义的数据自己说出自己意义的工具. BI发展至今 ...