相关文件
想学Python的小伙伴可以关注小编的公众号【Python日志】
有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!
Python学习交流群:773162165
开发环境
Python版本:3.7.8
相关模块:
requests模块;
beautifulsoup4模块;
click模块;
prettytable模块;
paperdl模块;
以及一些python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
首先,确定一下我们的目标是实现在谷歌学术上搜索论文,然后再通过sci-hub这个平台来下载我们搜索到的论文。于是,第一步我们要实现的就是在谷歌学术上搜索论文,简单抓包可以发现:
请求如下链接就可以获取搜索结果了:
https://scholar.google.com/scholar?
需要携带的参数也很简单:
q是我们搜索的论文关键字,其他参数的值都是可以当作固定的,最后我们再借助beautifulsoup4这个包把我们需要的论文信息提取出来即可,具体而言,核心代码实现如下:
'''search paper'''
def search(self, keyword):
# search
if self.config.get('area') == 'CN':
search_url = random.choice([
'https://xs2.dailyheadlines.cc/scholar',
'https://scholar.lanfanshu.cn/scholar',
])
params = {
'hl': 'zh-CN',
'as_sdt': '0,33',
'q': keyword,
'btnG': ''
}
else:
search_url = 'https://scholar.google.com/scholar'
params = {
'hl': 'en',
'as_sdt': '0,5',
'q': keyword,
'btnG': ''
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
response = self.session.get(search_url, params