码迷,mamicode.com
首页 > 编程语言 > 详细

python获取动态网站上面的动态加载的数据(selenium+Firefox)

时间:2017-10-22 21:33:55      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:打开   替代   htm   bs4   获取网页   源码   获取   gecko   logs   

最近突然想到以前爬取百度学术上的参考文献,大家可以看一下以前我的写的博客: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)

标签:打开   替代   htm   bs4   获取网页   源码   获取   gecko   logs   

原文地址:http://www.cnblogs.com/ybf-yyj/p/7710464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!