对其他的网站的爬取的实现
一、万方https://s.wanfangdata.com.cn/
(1)修改
爬虫的逻辑框架不需要做大量修改,只需要对针对的页面元素的位置进行确定
(2)存在的问题
万方的论文标题跳转上与知网空间不同,知网空间的反爬力度不是很大,基本上存在的所需的元素都是在< a >标签中,通过获得其.text属性或是get_attribute()来获取,但是在万方中对其中的内容进行了处理。
首先,万方的标题中不会包含跳转的链接和href属性,同时在url上也是将对应的搜索关键词进行加密后显示,由于无法确定是通过MD5或是base64亦或是其他的加密方式,因此无法直接对明文进行解密
(3)解决方法
一篇论文可以通过论文标题+作者唯一确定,因此通过构造一个搜索界面的url来返回一个只包含该文章的搜索结果页面解决文章id和url加密的问题
二、维普http://qikan.cqvip.com/
(1)修改
在单页爬取方面,只需要重新定位页面元素即可
(2)存在的问题
维普对selenium有针对的反爬机制
(3)解决方法
首先,观察到如果在浏览器中调出控制台,如果window.navigator.webdriver为False,则代表浏览器认为这不是selenium中的webdriver打开的浏览器,查询文档后知道可以通过 CDP来解决 在每个页面刚加载的时候执行 JavaScript 代码,执行的 CDP 方法叫作 Page.addScriptToEvaluateOnNewDocument来隐藏该属性