Python 爬虫中国知网论文过程中遇到的坑及解决办法
假期,老师给布置了 Python 爬虫中国知网论文的任务,目前实现了登录和搜索功能,先写一下遇到的坑和解决办法吧。
Python 爬虫中国知网论文过程中遇到的坑及解决办法
- 一. selenium 模块
- 1. 浏览器驱动程序下载与安装
- 2. NoSuchElementException
- 3. ElementClickInterceptedException
一. selenium 模块
概念:是一个基于浏览器自动化的模块。
其与爬虫间的关系:
- 便捷捕获到动态加载的数据(可见即可得);
- 实现模拟登录。
缺点:慢。(可以理解成 requests 模块可能 1 秒发起 10 个请求,但 selenium 可能 1 秒只发起 1 个请求)
环境安装:pip install selenium
基本使用:
- 使用某一款浏览器的驱动程序;
- 实例化某一款浏览器对象。
1. 浏览器驱动程序下载与安装
(!坑:一直寻找和自己谷歌浏览器对应版本的驱动,没找到,结果换了一个稍低版本的驱动竟然也兼容。学我如果报错了,憋找我。。。)
- Google Chrome 浏览器下载:https://www.google.cn/chrome/
- Google 驱动程序 chromedriver 下载:https://npm.taobao.org/mirrors/chromedriver
- Firefox 浏览器下载:https://www.firefox.com.cn/
- Firefox 驱动程序 geckodriver 下载:https://github.com/mozilla/geckodriver/releases/
- IE 浏览器下载:lhttp://www.microsoft.com/zh-cn/download/internet-explorer.aspx
- IE 驱动程序 IEdriver 下载:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/
如何查看自己浏览器版本(截图中深色部分为点击):
谷歌:
火狐:
Google Chrome 浏览器和驱动对应关系(火狐貌似无对应,如果有希望 hxd 评论指出):
2. NoSuchElementException
坑1:挂了学校 VPN,进入线上图书馆,点进知网却报错,网上搜索说浏览器版本和驱动不兼容,又重新卸载安装,还是报错。
解决方法: 换个浏览器和驱动试试,还是报错确认不是浏览器和驱动的锅。
坑2:又分析了一下,发现是点开知网打开了第二个页面,如果不跳转到第二个页面,那么还是在原来的页面上定位元素。
解决办法:在点击打开第二个页面后,加入以下代码,即可跳转第二个页面,如果不确定页面数,可以打印一下。
num = bro.window_handles #获取所有页面句柄
print(num)
bro.switch_to.window(num[1]) #跳转到第二个页面
3. ElementClickInterceptedException
坑:明明在浏览器中找到并复制了标签的 xpath ,但是运行起来却报错。
解决方法:网上查了一下说是有其他的元素掩盖了需要点击的元素,找到两种方法。
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element) # 方法1element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform() # 方法2
解决后自己的代码:
search = bro.find_element_by_id('btnSearch')
bro.execute_script("arguments[0].click();", search)
Python 爬虫中国知网论文过程中遇到的坑及解决办法相关推荐
- postgreSQL与postGIS安装过程中遇到的坑及解决
记录一下postgreSQL与postGIS安装过程中遇到的坑及解决 写到前面 postgreSQL安装 postgreSQL安装包下载 postgreSQL安装 postGIS的安装 postGIS ...
- ac ap方案 华为_今天给大家总结下AC+AP架构使用过程中的若干问题及解决办法
原标题:今天给大家总结下AC+AP架构使用过程中的若干问题及解决办法 早前发布了一篇<手把手教您如何大范围无线组网>,当时有朋友留言要我给点更详细的配置,有朋友建议用华为设备,也有朋友建议 ...
- 中国知网论文查重算法和修改攻略
现在高校对于硕士和博士论文采用的检测系统,是由知网开发的.但该软件的具体算法,判定标准,以前一直不清楚, 本文是从知网内部工作人员哪里拿到的,揭示了知网反抄袭检测系统的算法,如何判定论文是抄袭,以及如 ...
- python爬取知网论文信息
用Python爬取指望关于某个主题的所有论文摘要等信息. 很幸运的找到了一个大佬的代码来自己改改改! 先放大佬代码连接 Git 接下来就是我自己嚯嚯嚯改的,很小白的了... 应该是很详细得了 为了看懂 ...
- python实验过程中遇到的问题以及解决办法_20183413 2029-2020-2《Python程序设计》实验一报告...
20183413 2019-2020-2 <Python程序设计>实验一报告 课程:<Python程序设计> 班级: 1834 姓名:李杰 学号: 20183413 实验教师: ...
- caffe使用过程中遇到的问题和解决办法
cuda_success error 问题描述 在参考http://www.cnblogs.com/denny402/p/5083300.html自己尝试预处理和训练数据的时候,出现了error == ...
- python打包exe 之打包sklearn模型中的各种坑及其解决方法。
之前学习了如何打包,如何建立虚拟环境打包,以及如何带资源打包exe. python打包成exe 可执行文件 .教程 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标, ...
- 编译apache过程中出现如下错误及解决办法
在编译apache的过程中出现如下错误: no SSL-C headers found configure: error: ...No recognized SSL/TLS toolkit detec ...
- Cordova安装与配置过程中出现的问题及解决办法
最近在学习jQuery Mobile,在配置环境的过程中,遇到了一些问题,看百度这方面的资料挺少的,就自己总结一下了 1,在安装Cordova CLI过程中,提示出错,基本上是网速的问题,多安装几遍就 ...
最新文章
- 查看CPU是i386架构和x86_64架构
- python label怎么用_python tkinter label标签怎么使用?
- js如何获取div下面的input_原生 js 如何获取宽高
- python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法
- c++ 求2-100内的素数问题
- leetcode每日一题:406.queue-reconstruction-by-height(根据升高重建队列)
- 数据结构之c++感悟
- python 三目运算符
- Clean Code(代码整洁之道)-有意义的命名
- 那些惊艳到你了的古诗词?
- java 首次适应算法_首次适应算法java代码
- 捐一个亿的是加多宝,不是王老吉!只喝加多宝,不喝王老吉!
- 小米刷機LineageOS
- 我与照片之乾坤大挪移-瞬间旋转你的照片
- 一些常用工具下载链接
- 如何把计算机软件卸载干净
- 摩拜共享单车技术含量
- R语言使用ggplot绘制线型与点
- 在树莓派上安装mqtt客户端
- Flex Air 实现桌面尺子(Ruler)工具