python获取动态网站上面的动态加载的数据(selenium+Firefox)
2017-10-22 16:14
627 查看
最近突然想到以前爬取百度学术上的参考文献,大家可以看一下以前我的写的博客: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获取动态网站上面的动态加载的数据(初级)
- python3 网络爬虫(二)利用get请求获取网页的动态加载数据
- Python selenium爬虫抓取船舶网站数据(动态页面)
- selenium自动化测试工具开发python爬虫-动态加载页面数据获取
- python selenium 获取动态网页数据
- Python PhatomJS 和Selenium动态加载页面 获取图片内容
- python3 网络爬虫(三)利用post请求获取网页的动态加载数据
- python下利用Selenium获取动态页面数据
- python获取完整网页内容(即包括js动态加载的):selenium+phantomjs
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
- Python+selenium之获取文本值和下拉框选择数据
- 获取金融数据的python接口网站
- python3 Selenium启动加载用户配置的浏览器(Chrome/Firefox)
- 用python+selenium获取北上广深成五地PM2.5数据信息并按空气质量排序
- python3 selenium 获取JS动态页面title
- Python+Selenium练习篇之20-获取元素上面的文字
- [安卓] 9、线程、VIEW、消息实现从TCP服务器获取数据动态加载显示
- Python爬虫学习——使用selenium和phantomjs爬取js动态加载的网页
- python结合selenium获取XX省交通违章数据的实现思路及代码
- 利用js将ajax获取到的后台数据动态加载至网页中