Python爬虫实战(5)爬取知网文献信息

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

最近有小伙伴后台跟我说,临近毕业,写毕业论文需要上知网查找大量的文献

我一听好家伙,这位小伙伴是懂偷懒的,想起当初我写毕业论文的时候也是饱经查阅文献的折磨,深知那种滋味

但是知网作为国内知名的文献数据库之一,有着极其复杂的反爬虫机制,例如动态JS、iframe、验证码等等,不是说想爬就能爬的

像我之前采用requests模拟请求的方法来爬取的话难度很大,一个不小心就有可能被封IP

selenium是一个自动化测试工具,可以用来进行web自动化测试

selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器

爬虫中用到selenium主要是为了解决requests无法直接执行JavaScript代码等问题

下面就来介绍下selenium基础用法

Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等

我们只要首先下载好相应浏览器的驱动(webdriver)到Python主目录中,或者加入环境变量即可

fromseleniumimportwebdriverbrowser=webdriver.Chrome()browser=webdriver.Firefox()browser=webdriver.Edge()browser=webdriver.Safari()访问页面

我们可以用get()方法来请求一个网页,传入参数链接URL

#根据id查找find_element_by_id()#根据name查找find_element_by_name()#根据classname查找find_element_by_class_name()#根据Tagname查找find_element_by_tag_name()#根据完整超链接查找find_element_by_link_text()#根据部分超链接查找find_element_by_partial_link_text()#根据xpath查找find_element_by_xpath()#根据css选择器查找find_element_by_css_selector()PS:

上面的element变成elements(例如find_elements_by_id)就是找到所有满足的条件,然后返回数据

等待页面加载完成

有显式等待和隐式等待

显式等待使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)

常用浏览器操作

在找到浏览器相应元素的位置之后,我们就需要进行一些交互动作,例如双击、点击、输入、获取网页源码等等

通过对当前页面分析,发现每条文献条目的xpath是有规律的

导入所需包

importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.desired_capabilitiesimportDesiredCapabilities创建浏览器对象

这里我用的是Edge浏览器

#get直接返回,不再等待界面加载完成desired_capabilities=DesiredCapabilities.EDGEdesired_capabilities["pageLoadStrategy"]="none"#设置Edge驱动器的环境options=webdriver.EdgeOptions()#设置Edge不加载图片,提高速度options.add_experimental_option("prefs",{"profile.managed_default_content_settings.images":2})#创建一个Edge驱动器driver=webdriver.Edge(options=options)传入url参数然后模拟对浏览器进行人为操作

适当的加入time.sleep()方法,等待页面加载完成

不然页面还没完全加载就执行下一步操作的话会报错

res_unm=WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,"/html/body/div[3]/div[2]/div[2]/div[2]/form/div/div[1]/div[1]/span[1]/em"))).text#去除千分位的逗号res_unm=int(res_unm.replace(",",''))page_unm=int(res_unm/20)+1print(f"共找到{res_unm}条结果,{page_unm}页。")对结果页进行解析

完整代码如下:

网络并不是可靠的,我在调试程序的时候往往出现网页加载过慢导致元素查找出错

desired_capabilities=DesiredCapabilities.EDGEdesired_capabilities["pageLoadStrategy"]="none"在需要等待网页加载完全之后才能执行下一步骤的地方加上time.sleep()方法休眠几秒,既可以等待页面加载,也可以防止爬取太快被封IP

代码逻辑出错导致爬取不了20倍页数的第20条文献信息

刚开始写的时候,逻辑不够准确,导致第20页、40页、60页(20整数倍)的第20条文献爬取不了

THE END
1.edge浏览器插件查重edge浏览器检查语言改成中文1、知网查重无法访问怎么办? 2、如何免费查询知网论文 3、为什么在中国知网查重时出现问题 4、什么是AJAX? 5、wps和微软的office,到底是谁模仿的谁? 知网查重无法访问怎么办? 如果您无法访问知网查重,可以尝试以下方法:检查网络连接:确保您的设备连接到互联网,并且网络连接稳定。尝试使用不同的浏览器或设备:有时https://www.915go.com/zhuangji/16352.html
2.ie浏览器不能使用怎么回事ie浏览器不能使用怎么回事 IE浏览器无法使用怎么办 1. 检查IE浏览器的加载管理项和是否有其他插件,打开控制面板,选择“网络和Internet选项”,如图。 2. 在Internt选项下面选择“管理浏览器加载项”,如图; 3. 在属性内选择“管理加载项”,在管理加载项内把没用的或异常的加载项禁止掉,如图。https://www.tayang100.com/post/o9j6po57l.html
3.MicrosoftEdgeA Microsoft cross-platform web browser that provides privacy, learning, and accessibility tools.https://learn.microsoft.com/en-us/answers/tags/7/microsoft-edge
4.日报如何解决浏览器不支持的问题社会新闻12月17日,自助烤肉儿媳妇不能吃,JAZZJIZZ国产精品喷水,白洁传最终结局免费在线阅读|白洁传最终结局免费全文,灵落椒房(骨科1V2)灵落椒房(骨科1V2)全文免费阅读书,水蜜桃批发行情网站免费:如何找到合适的资源获,暗黑之门伦敦最强职业,僵尸之无限进化,《天之云地之雾》电视剧在线播放-星辰影视,最讨厌的朋友byhttp://m.ouzhehua.com/v/video/359226774020241209.shtml?id=5-scm
5.浏览器打不开网页怎么办?重庆辟谣一步行街突发爆炸 微信朋友圈崩了 习近平将出席庆祝澳门回归祖国25周年大会 0 Play 00:00 % buffered00:00 00:00Enter fullscreen浏览器打不开网页怎么办?科技小磊 陕西 0 打开网易新闻 体验效果更佳https://m.163.com/v/video/VGI83PLET.html
6.edge浏览器无法进入中国知网,但可以进入其他网站需要怎么解决最近使用edge浏览器进入中国知网,加载了很长时间都打不开,好不容易打开了,结果出现:“嗯无法访问此页面”。即使无法进入知网,但可以进入哔哩哔哩或其他网站,甚是苦恼,下面是一个方法,亲测有用! 1 1.在电脑的搜索栏输入:控制面板,并点击进入控制面板选项。 https://blog.csdn.net/m0_45906029/article/details/134292507
7.[萝卜图书馆]中文文献下载教程及常见问题(210312版)例如:我下的这篇文献是CAJ格式,用CAJ阅读器(例如CAJ云阅读 CAJviewer)打开即可 如果您下载的是PDF格式,可以直接用chrome浏览器/win10的Edge浏览器/WPS软件打开 (学位论文多为CAJ格式 因为知网新官网里只提供CAJ格式的全篇学位论文) 知网下载方法之【入口3】(基础教育类文献入口3不支持下载) https://www.jianshu.com/p/04d25ae12668
8.能上P站的浏览器有哪些?pornhub加速器提到Pornhub,相信各位老司机不会陌生。很多网友都想知道怎么才能上Porenhub呢?具体哪些浏览器可以访问、打开、进入Porenhub网站,让小编给大家介绍几款浏览器轻松观看Porenhub视频。 注意,再好的浏览器要是没有加速器,也是没有用的哦! 360极速浏览器 360极速浏览器可以访问 Porenhub,很轻松的就能打开进入,没有出现https://movie.tqlcool.com/special-topics/3984.html
9.GitHubMicrosoft Edge应用商店下载(推荐):点击easyScholar,点击安装即可。 谷歌应用商店下载(需要梯子):点击easyScholar,点击安装即可。 火狐应用商店下载:点击easyScholar,点击安装即可。 离线安装方法(此为edge浏览器教程,其他浏览器步骤基本相似): 首先作者不提倡这种安装方式,最好通过商店安装。离线安装代码未经过商店审核,且https://github.com/loongyowl/easyScholar
10.激活新版Edge浏览器的试验功能电脑报激活新版Edge浏览器的试验功能,浏览器,标签页,大家都知道,新版Edge浏览器是在Chromium框架的基础上开发的,而该框架的浏览器默认都有试验功能,通过它可以提早感受到一些即将发布https://wap.cnki.net/touch/web/Newspaper/Article/DINA202002170260.html
11.Edge浏览器调整安全等级方法教程系统资讯edge浏览器专针对不同的用户准备了不同等级的安全防护,分为基本、平衡、严格三种,大家可以按照自己的使用需求调高或调低。那具体该怎么设置呢?下面小编就为大家带来详细教程, 希望对您有帮助。 Microsoft Edge浏览器 V108.0.1462.54 官方版 [电脑软件] https://www.zovps.com/article/index.php/post/45763.html
12.VPN常见问题与解决方法(20220418)3)知网等登录时无法下载,若右上角未显示“东南大学”,点击登录-IP登录,再次尝试。 4)其他,如浏览器兼容问题:建议更换微软Edge、谷歌Chrome、火狐Firefox再试一次。注意客户端会选择默认浏览器,可直接复制网址到相应浏览器打开。 5 客户端与服务端版本不匹配/版本需更新 https://nic.seu.edu.cn/info/1030/1862.htm
13.微软浏览器edge打不开网页了微软浏览器edge这款浏览器很多用户都在使用,而且使用的过程当中流畅感很好。微软浏览器edge打不开网页了?该怎么办呢? 01 首先打开windows系统控制面板。 02 点击用户账户。 03 点击更改用户账户控制设置即可。 04 打开百度浏览器,点击高级设置。 05 选择不阻止cookie即可。https://www.coozhi.com/youxishuma/diannao/182386.html
14.linuxcaj浏览器腾讯云开发者社区第二种比较新的期刊文献,这类caj文件都是由杂志社直接提供电子版的文件,由同方制作成caj文件的,可以直接复制,也不会出现文字错误,唯一的缺点就是caj里的一行,就是Word里的一段,这是没法改变的。唯一算是比较靠谱一点的方法,就是用caj专用浏览器(CajViewer)里边的文本识别功能,直接去识别,错误估计还会https://cloud.tencent.com/developer/information/linux%20caj%E6%B5%8F%E8%A7%88%E5%99%A8
15.查重结果浏览器打不开查重结果浏览器打不开怎么办1.通常情况下,知网论文查重报告是有两种形式的,一个网页版本报告和pdf格式的报告,网页报告可以通过浏览器直接打开,如果是pdf报告,那你需要下载 pdf阅读工具来打开它,没有pdf阅读器是打不开的。 2.若在对查重报告进行下载,下载下来的安装包有损坏,也是无法正常打开该报告,大家可以尝试重新下载。 http://www.cleverschool.com/chachong/174519.html
16.文献采集助手插件知网研学下载v2.0.1官方浏览器版Chrome浏览器、Edge浏览器 支持将网页内容以及中国知网、Springer、ScienceDirect、Wiley、IEEE、EBSCO、谷歌学术等其他国内外常用数据库的题录信息或全文保存到知网研学。 下载地址 经杀毒检测后安全下载: 通用安全下载 移动安全下载 联通安全下载 电信安全下载 https://www.wmzhe.com/soft-62947.html