Python带你看文献—xpath抓取知网文献!

【爬虫实战】Python爬取文献信息 👉Python学习路线汇总👈Python所有方向的技术点做的整理,形成各个领域的识点汇总,它的用处就在于,你可以按照上面的识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)👉Python必备开发工具👈。 阅读详情

在做学术的道路上,陪伴我们的不是对象(可能没有),不是家人(可能不在身边),甚至不是头发(日减稀疏),始终不离不弃的肯定是浩如烟海的论文。查阅文献常用的网站当属知网,为了实现快速翻阅、应用有类似纸质书体验的效果,我们今天就用Python来翻一翻知网上顶级期刊的文献目录。

 

一、案例简介

我们进入中国知网网站,点击出版物检索,选择期刊导航,输入《会计研究》。

就进入了目标网址:https://navi.cnki.net/knavi/JournalDetail?pcode=CJFD&pykm=KJYJ。我们的目标是爬取2018年全年的文章题目和作者,对于没有作者的文章题目,如征文启事,则予以删除。我们先对单期期刊进行处理,再将其扩展到12期期刊。

在做学术的道路上,陪伴我们的不是对象(可能没有),不是家人(可能不在身边),甚至不是头发(日减稀疏),始终不离不弃的肯定是浩如烟海的论文。查阅文献常用的网站当属知网,为了实现快速翻阅、应用有类似纸质书体验的效果,我们今天就用Python来翻一翻知网上顶级期刊的文献目录。

 

一、案例简介

我们进入中国知网网站,点击出版物检索,选择期刊导航,输入《会计研究》。

 

 

 

 

就进入了目标网址:https://navi.cnki.net/knavi/JournalDetail?pcode=CJFD&pykm=KJYJ。我们的目标是爬取2018年全年的文章题目和作者,对于没有作者的文章题目,如征文启事,则予以删除。我们先对单期期刊进行处理,再将其扩展到12期期刊。

 

 

 

二、案例实操

(一)单个期刊

我们打开开发者模式,选择network,在name中寻找到网页信息,发现其网页获取方式是post,接着我们模拟人工浏览网页的行为写入headers对应的信息:url,request headers和querystring parameters。

 

 

 

 

 

 

 

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

import requests  #引入requests库爬取网页代码import json  #引入json库处理data列表中的内容 url='https://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=01&pykm=KJYJ&pageIdx=0&pcode=CJFD'    headers={         'Accept': '*/*',         'Accept-Encoding':'gzip, deflate, br',         'Accept-Language':'zh-CN,zh;q=0.9',         'Connection':'keep-alive',         'Content-Length':'0',         'Cookie':'Ecp_notFirstLogin=lGQkVH; Ecp_ClientId=7190918101000734970;cnkiUserKey=bb2d2b7c-5a96-65a9-7fa0-e25390f23ca9;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;ASP.NET_SessionId=jnov5mpsxebarzz3enczg3gj; SID_navi=120161;c_m_LinID=LinID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&ot=10/22/201919:34:18; c_m_expire=2019-10-22 19:34:18; Ecp_session=1; Ecp_LoginStuts=%7B%22IsAutoLogin%22%3Afalse%2C%22UserName%22%3A%22WH0023%22%2C%22ShowName%22%3A%22%25E4%25B8%25AD%25E5%258D%2597%25E8%25B4%25A2%25E7%25BB%258F%25E6%2594%25BF%25E6%25B3%2595%25E5%25A4%25A7%25E5%25AD%25A6%22%2C%22UserType%22%3A%22bk%22%2C%22r%22%3A%22lGQkVH%22%7D;Ecp_notFirstLogin=lGQkVH;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0%3D%249A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;NaviIsLogin=1; _pk_ses=*',         'Host':'navi.cnki.net',         'Origin':'https://navi.cnki.net',         'Referer':'https://navi.cnki.net/knavi/JournalDetail?pcode=CJFD&pykm=KJYJ',         'Sec-Fetch-Mode':'cors',         'Sec-Fetch-Site':'same-origin',         'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/75.0.3770.100 Safari/537.36',         'X-Requested-With':'XMLHttpRequest'    }data={         'year': '2018',         'issue': '01',         'pykm': 'KJYJ',         'pageIdx': '0',         'pcode': 'CJFD'    }html=requests.post(url,headers=headers,data=json.dumps(data))

结果为:

  •  

<Response [200]>

说明网页爬取成功。至此我们就把2018年第一期期刊的网页源代码拿到了,接下来,使用xpath解析,得到目标信息。

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

from lxml import etree  #引入lxml库totitlename=[]  #首先定义空列表以盛放结果信息toauthor=[] tree=etree.HTML(html.text) #使用xpath进行解析titlename=tree.xpath("/html/body//span[@class='name']/a/text()")#得到这一节点对应的文本内容即为文章题目author=tree.xpath("/html/body//span[@class='author']/text()")#得到这一节点对应的文本内容即为作者totitlename.extend(titlename[0:len(author)]) #没有作者的文章题目,如征文启事,不保留toauthor.extend(author)print(totitlename)print(toauthor)

结果为:

 

 

至此我们成功得到了2018年第一期期刊所有的文章题目和作者。

(二)12期期刊

接下来,对于12期期刊,我们将用于单个期刊的程序封装进一个循环。其中关于f-string的用法参见往期推文《格式化字符串方法的比较》。

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

  •  

import requestsfrom lxml import etreeimport jsonimport re totitlename=[]toauthor=[]for issue in range(1,13):    url=f'https://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue={issue:0>2d}&pykm=KJYJ&pageIdx=0&pcode=CJFD'     #使用f-string实现{}内依次为两位数字01-12    headers={              'Accept':'*/*',              'Accept-Encoding':'gzip, deflate, br',              'Accept-Language':'zh-CN,zh;q=0.9',              'Connection':'keep-alive',              'Content-Length':'0',              'Cookie':'Ecp_notFirstLogin=lGQkVH; Ecp_ClientId=7190918101000734970;cnkiUserKey=bb2d2b7c-5a96-65a9-7fa0-e25390f23ca9;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;ASP.NET_SessionId=jnov5mpsxebarzz3enczg3gj; SID_navi=120161;c_m_LinID=LinID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&ot=10/22/201919:34:18; c_m_expire=2019-10-22 19:34:18; Ecp_session=1;Ecp_LoginStuts=%7B%22IsAutoLogin%22%3Afalse%2C%22UserName%22%3A%22WH0023%22%2C%22ShowName%22%3A%22%25E4%25B8%25AD%25E5%258D%2597%25E8%25B4%25A2%25E7%25BB%258F%25E6%2594%25BF%25E6%25B3%2595%25E5%25A4%25A7%25E5%25AD%25A6%22%2C%22UserType%22%3A%22bk%22%2C%22r%22%3A%22lGQkVH%22%7D;Ecp_notFirstLogin=lGQkVH;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0%3D%249A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;NaviIsLogin=1; _pk_ses=*',              'Host':'navi.cnki.net',              'Origin':'https://navi.cnki.net',              'Referer': 'https://navi.cnki.net/knavi/JournalDetail?pcode=CJFD&pykm=KJYJ',              'Sec-Fetch-Mode':'cors',              'Sec-Fetch-Site':'same-origin',              'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/75.0.3770.100 Safari/537.36',              'X-Requested-With':'XMLHttpRequest'    }    data={              'year':'2018',              'issue':f'{issue:0>2d}',              'pykm':'KJYJ',              'pageIdx':'0',              'pcode':'CJFD'    }    html=requests.post(url,headers=headers,data=json.dumps(data))    tree=etree.HTML(html.text)    titlename=tree.xpath("/html/body//span[@class='name']/a/text()")    author=tree.xpath("/html/body//span[@class='author']/text()")    totitlename.extend(titlename[0:len(author)])#没有作者的文章题目,如征文启事,不保留    toauthor.extend(author)print(len(totitlename))print(len(toauthor))

结果为:

 

 

 

说明我们一共抓取到了157条信息。接下来我们将结果写入文件,保存下来。其中关于re.sub的使用参见往期推文《妙用正则表达式--Python中的re模块》。

  •  

  •  

  •  

with open('g:\\会计研究.csv','w',encoding='gb18030') as f:    for i in range(0,len(toauthor)):        f.write(totitlename[i].strip()+','+re.sub(";",",",toauthor[i])+'\n')  #strip函数把文章题目中的空白字符删掉,re.sub把作者中的分号替换为逗号。写入文章题目+作者姓名

结果如下:

 

 

现在我们就成功使用Python得到了《会计研究》2018年12期期刊的文章题目和对应作者,达到了迅速浏览目录的效果。

 

三、小结

学术的路上,道阻且长,希望小编的这段程序可以帮助大家在学术道路上走得稍微容易一点,望大家多读文献、多发文献,把学术做得更好!

二、案例实操

(一)单个期刊

我们打开开发者模式,选择network,在name中寻找到网页信息,发现其网页获取方式是post,接着我们模拟人工浏览网页的行为写入headers对应的信息:url,request headers和querystring parameters。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
import requests  #引入requests库爬取网页代码import json  #引入json库处理data列表中的内容
url='https://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue=01&pykm=KJYJ&pageIdx=0&pcode=CJFD'    headers={         'Accept': '*/*',         'Accept-Encoding':'gzip, deflate, br',         'Accept-Language':'zh-CN,zh;q=0.9',         'Connection':'keep-alive',         'Content-Length':'0',         'Cookie':'Ecp_notFirstLogin=lGQkVH; Ecp_ClientId=7190918101000734970;cnkiUserKey=bb2d2b7c-5a96-65a9-7fa0-e25390f23ca9;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;ASP.NET_SessionId=jnov5mpsxebarzz3enczg3gj; SID_navi=120161;c_m_LinID=LinID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&ot=10/22/201919:34:18; c_m_expire=2019-10-22 19:34:18; Ecp_session=1; Ecp_LoginStuts=%7B%22IsAutoLogin%22%3Afalse%2C%22UserName%22%3A%22WH0023%22%2C%22ShowName%22%3A%22%25E4%25B8%25AD%25E5%258D%2597%25E8%25B4%25A2%25E7%25BB%258F%25E6%2594%25BF%25E6%25B3%2595%25E5%25A4%25A7%25E5%25AD%25A6%22%2C%22UserType%22%3A%22bk%22%2C%22r%22%3A%22lGQkVH%22%7D;Ecp_notFirstLogin=lGQkVH;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0%3D%249A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;NaviIsLogin=1; _pk_ses=*',         'Host':'navi.cnki.net',         'Origin':'https://navi.cnki.net',         'Referer':'https://navi.cnki.net/knavi/JournalDetail?pcode=CJFD&pykm=KJYJ',         'Sec-Fetch-Mode':'cors',         'Sec-Fetch-Site':'same-origin',         'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/75.0.3770.100 Safari/537.36',         'X-Requested-With':'XMLHttpRequest'    }data={         'year': '2018',         'issue': '01',         'pykm': 'KJYJ',         'pageIdx': '0',         'pcode': 'CJFD'    }html=requests.post(url,headers=headers,data=json.dumps(data))

结果为:

  •  
<Response [200]>

说明网页爬取成功。至此我们就把2018年第一期期刊的网页源代码拿到了,接下来,使用xpath解析,得到目标信息。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
from lxml import etree  #引入lxml库totitlename=[]  #首先定义空列表以盛放结果信息toauthor=[] tree=etree.HTML(html.text) #使用xpath进行解析titlename=tree.xpath("/html/body//span[@class='name']/a/text()")#得到这一节点对应的文本内容即为文章题目author=tree.xpath("/html/body//span[@class='author']/text()")#得到这一节点对应的文本内容即为作者totitlename.extend(titlename[0:len(author)]) #没有作者的文章题目,如征文启事,不保留toauthor.extend(author)print(totitlename)print(toauthor)

结果为:

至此我们成功得到了2018年第一期期刊所有的文章题目和作者。

(二)12期期刊

接下来,对于12期期刊,我们将用于单个期刊的程序封装进一个循环。其中关于f-string的用法参见往期推文《格式化字符串方法的比较》。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
import requestsfrom lxml import etreeimport jsonimport re
totitlename=[]toauthor=[]for issue in range(1,13):    url=f'https://navi.cnki.net/knavi/JournalDetail/GetArticleList?year=2018&issue={issue:0>2d}&pykm=KJYJ&pageIdx=0&pcode=CJFD'     #使用f-string实现{}内依次为两位数字01-12    headers={              'Accept':'*/*',              'Accept-Encoding':'gzip, deflate, br',              'Accept-Language':'zh-CN,zh;q=0.9',              'Connection':'keep-alive',              'Content-Length':'0',              'Cookie':'Ecp_notFirstLogin=lGQkVH; Ecp_ClientId=7190918101000734970;cnkiUserKey=bb2d2b7c-5a96-65a9-7fa0-e25390f23ca9;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;ASP.NET_SessionId=jnov5mpsxebarzz3enczg3gj; SID_navi=120161;c_m_LinID=LinID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&ot=10/22/201919:34:18; c_m_expire=2019-10-22 19:34:18; Ecp_session=1;Ecp_LoginStuts=%7B%22IsAutoLogin%22%3Afalse%2C%22UserName%22%3A%22WH0023%22%2C%22ShowName%22%3A%22%25E4%25B8%25AD%25E5%258D%2597%25E8%25B4%25A2%25E7%25BB%258F%25E6%2594%25BF%25E6%25B3%2595%25E5%25A4%25A7%25E5%25AD%25A6%22%2C%22UserType%22%3A%22bk%22%2C%22r%22%3A%22lGQkVH%22%7D;Ecp_notFirstLogin=lGQkVH;LID=WEEvREcwSlJHSldRa1FhdXNXaEhobnVrZ0FnZVZzejRNWVFKcmlhZlNXRT0%3D%249A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!;NaviIsLogin=1; _pk_ses=*',              'Host':'navi.cnki.net',              'Origin':'https://navi.cnki.net',              'Referer': 'https://navi.cnki.net/knavi/JournalDetail?pcode=CJFD&pykm=KJYJ',              'Sec-Fetch-Mode':'cors',              'Sec-Fetch-Site':'same-origin',              'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/75.0.3770.100 Safari/537.36',              'X-Requested-With':'XMLHttpRequest'    }    data={              'year':'2018',              'issue':f'{issue:0>2d}',              'pykm':'KJYJ',              'pageIdx':'0',              'pcode':'CJFD'    }    html=requests.post(url,headers=headers,data=json.dumps(data))    tree=etree.HTML(html.text)    titlename=tree.xpath("/html/body//span[@class='name']/a/text()")    author=tree.xpath("/html/body//span[@class='author']/text()")    totitlename.extend(titlename[0:len(author)])#没有作者的文章题目,如征文启事,不保留    toauthor.extend(author)print(len(totitlename))print(len(toauthor))

结果为:

说明我们一共抓取到了157条信息。接下来我们将结果写入文件,保存下来。其中关于re.sub的使用参见往期推文《妙用正则表达式--Python中的re模块》。

  •  
  •  
  •  
with open('g:\\会计研究.csv','w',encoding='gb18030') as f:    for i in range(0,len(toauthor)):        f.write(totitlename[i].strip()+','+re.sub(";",",",toauthor[i])+'\n')  #strip函数把文章题目中的空白字符删掉,re.sub把作者中的分号替换为逗号。写入文章题目+作者姓名

结果如下:

现在我们就成功使用Python得到了《会计研究》2018年12期期刊的文章题目和对应作者,达到了迅速浏览目录的效果。

 

三、小结

学术的路上,道阻且长,希望小编的这段程序可以帮助大家在学术道路上走得稍微容易一点,望大家多读文献、多发文献,把学术做得更好!

python下载_GitHub - ppho99/CNKI-download: (CNKI)文献下载及文献速览爬虫 CNKI_download 中国爬虫项目是基于Python3 实现的爬取数据的爬虫,可根据高级检索进行搜索,提供文献基本信息、文献下载、文献摘要等详细信息爬取功能。实现过程可以查看我的博客程序运行如下:详细信息excel表格如下:下载caj如下:特点通过发送解析包形式抓取数据,相比于使用selenium等方式性能稍高一些。可使用高级检索功能进行搜索,更高效检索文献。可根据络及... 阅读详情

相关推荐

毕业论文找文献是个问题,我直接用python把全文献爬了一遍,这波就很舒服

毕业论文找文献是个问题,我直接用python把全文献爬了一遍,这波就很舒服

m0_59235508的博客 2624

Python爬虫:抓取科学论文摘要和作者信息的完整教程

科学论文是科研和学术界的重要资源,研究者和学生需要不断获取最新的研究成果和信息。Python作为一门强大的编程语言,提供了出色的爬虫工具,可以帮助我们自动抓取科学论文的摘要和作者信息。本文将为你提供一个清晰的思路和Python示例,教你如何创建一个论文信息爬虫,用于抓取科学论文的摘要和作者信息。

2201_76125393的博客 1069

如何用Python批量获取文献信息?

一键爬取论文文献资料

xiaolinyui的博客 2543

python 文献检索_学习帖|大神是如何用Python高效解决文献搜索和数据处理!?...

#研究生期间,你被逼得有多绝望?◆ 写论文一起床一睁眼:今天一定要写完这一部分一支烟一杯茶:一个introduction写一天一躺下一闭眼:今天都写了些什么玩意◆ 面对老板交稿前脑补各种挨批场景,没想到最终他风轻云淡说一句:换个题目吧◆ Peer pressure当看到室友在写论文时,我:输人不输势!这应该就是大多数科研人的日常了吧。前几天,我一师弟还在跟我吐槽:他一刚入门就没有人,从课题到实验...

weixin_35870524的博客 2400

Python——文献翻译

调用讯飞翻译API翻译文献

随手记录 828

Python批量获取文献信息,轻松解放双手 !

能够很容易定位到摘要的文本,class name:

python03012的博客 5177

xpath以某个字符开始_Python你看文献xpath抓取文献

本文作者:王碧琪文字编辑:余术玲技术总编:张 邯爬虫俱乐部将于2020年1月5日至11日在湖北武汉举行为期一周的Stata编程技术定制培训,此次采取初级班和高级班分批次培训。课程通过案例教学模式,旨在帮助大家在短期内掌握Stata软件编程、金融计量识和实证分析方法,使大家熟悉Stata核心的爬虫技术,以及Stata与其他软件交互的高端技术。目前正在火热招生中~另外,2019年11月...

weixin_32026659的博客 458

爬虫批量获取中文文献引用[selenium+]

首先将文献下载保存至一个文件夹,文件命名格式为 " XXXXXX_作者.pdf "(下载pdf默认格式),然后通过python提取文件名,利用selenium访问实现搜索、引用的功能,然后抓取文献引用格式。:毕业论文中文献往往高达几十篇,调整引用格式(如标点后需加“空格”,作者超过三人,第三人以后需改为“,等”),虽然有各种论文管理软件,但能利用自己所学技能批量获取文献引用也挺有趣。缺点很多,包括英文文章没有考虑,文献命名格式固定等等,不过作为一个小demo玩玩还是可以的。

JiaYou_PPZ的博客 1458

006-我要爬!完整地爬取了参考文献的内容。【第二次】

虽然写着第二天,但实际上离第二天过了不道多久。具体的代码我前两天就写完和改完,但因为别的原因没写博客。 参考文献这个,实话说,很简单……毕竟只要找点规律就好。接下来该怎么绕过的反扒设计进行搜索才是重点,查了很多文章都没搞懂。 1. 需要的包 import requests from lxml import etree 2. 用来作为测试的文章的url # ▇▇▇▇▇ 00:参考...

MoltenDivineCore的博客 4593

selenium 根据期刊信息获取文献信息 pt.1

但是今天咸鱼先只写爬到文献链接那一步,后面的打开每条链接获取文献信息这部分小伙伴们可以先自己尝试一下,我们以爬取 2022 年相关文献为例子,得出 selenium 模拟人浏览页的操作,然后分析页并定位元素首先点击年份 2022,然后依次点击期数(No.06、No.05…)我们每点击一次期数,然后就爬取对应期数下面的文献链接,并用大标题分类。

s_alted的博客 558

使用selenium自动从cnki.net下载pdf文献

通过for循环,获取a标签的属性href链接,然后再使用driver.get()进入到文章页面,暂停5秒钟等文章页面加载完成后,点击pdf按钮,自动下载文章的pdf文件。要想自动下载期刊论文,先要在chrome浏览器里登录好帐号密码。注意自己的速,设置好暂停的秒数后,再往下执行。跳转到搜索结果页面后,需要暂停个5秒,等页面加载完,才能使用xpath查找到相应的dom元素,因为列表都是使用异步加载到相应的模块里面的。就可以循环该a标签的dom元素列表,遍历到所有的文章链接了。

andux的专栏 845

科研人必备效率技能:5分钟自动化抓取期刊封面与目录(Python脚本分享)

本文介绍了一套Python自动化解决方案,帮助科研工作者快速抓取期刊封面与目录,大幅提升科研效率。通过模拟浏览器操作、解析页面结构和文件转换技术,实现从登录到下载的全流程自动化,特别适合处理大量文献的场景。

weixin_30315723的博客 530

一条一条查看文献信息太麻烦?Python 爬虫帮你解决!

道大家有没有上查过文献,当你需要查阅大量文献信息时,一条一条地点开链接、进入文献页面,然后手动提取数据,这个过程是相当麻烦且耗时的。 那么今天强哥教大家如何通过 Python 爬虫帮你摆脱这些烦人的任务,让你事半功倍!

qq_41314882的博客 1042

使用Python+BeautifulSoup+Xpath+Mongodb爬取所有期刊信息

使用Python+BeautifulSoup+Xpath+Mongodb爬取所有期刊信息 import json import requests from lxml import etree from bs4 import BeautifulSoup from pymongo import MongoClient base_url = 'https://t.cnki.net/knavi/journals/searchbaseinfo' # 初始化mongodb实体类,存储数据库 class mon

duanjiamingsss的博客 1746

爬取数据

进行模拟爬取 运行selenium进行模拟登录,后进行爬取数据 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from urllib.parse import u

weixin_45850679的博客 929

python络爬虫文献综述_Python络爬虫教程:乎爬虫案例

#!/usr/bin/env python#-*- coding:utf-8 -*-from scrapy.contrib.spiders importCrawlSpider, Rulefrom scrapy.selector importSelectorfrom scrapy.contrib.linkextractors.sgml importSgmlLinkExtractorfrom scra...

weixin_39927848的博客 278

Python页爬虫爬取豆瓣Top250电影数据——Xpath数据解析

本次程序只爬取了豆瓣top250电影的展示页面的数据,没有爬取电影详情页的数据。在前面我们已经获取了每一部电影详情页的链接links,如果想要爬取电影的详情页,可以通过for循环遍历列表links,对每一个详情页发起请求,从而获取电影详情页的数据并进行解析。

qq_44777595的博客 6万+
上一篇: 在RPA中使用Python批量生成指定尺寸的缩略图!比Ps好用!
下一篇: 将安卓手机打造成你的python全栈开发利器!
PythonJavaPHP
博客等级 码龄7年 116粉丝 76原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值