Quaternary Science Reviews期刊获取Recent articles
Quaternary Science Reviews(第四纪科学评论)介绍
QSR涵盖第四纪科学研究的各个方面,包括地质学、地貌学、地理学、考古学、土壤科学、古植物学、古生物学、古气候学和所有适用的测年方法。
条目 | 内容 |
---|---|
中科院分区 | TOP 1区(地球科学) |
CiteScore | 7.8 |
Impact Factor | 4 |
目的:获取Quaternary Science Reviews期刊Recent articles版块的文章信息
网址:https://www.journals.elsevier.com/quaternary-science-reviews
1. 看robots.txt
https://www.journals.elsevier.com/robots.txt
查询后发现对爬虫无限制,放心爬取
2. 分析网页,找到目标所在
F12查看源代码,发现内容都在html文件中,比较简单。
3. 代码实现
import requests
from lxml import etree
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36',
}
def get_recent_articles():
recent_articles_url = 'https://www.journals.elsevier.com/quaternary-science-reviews/recent-articles'
res = requests.get(recent_articles_url,headers=headers)
html = etree.HTML(res.text)
items = html.xpath('//*[@id="Content1"]/div[2]/div[@class="pod-listing"]')
print('Quaternary_Science_Reviews Recent articles: {} articles'.format(len(items)))
for item in items:
article_title = item.xpath('./div/a/@title')
article_date = item.xpath('./div/div/text()')
article_link = item.xpath('./div/a/@href')
print('''
--------------------------------------------------------------------
%s\n%s\n%s
--------------------------------------------------------------------'''%(article_title[0],article_date[0],article_link[0]))
if __name__ == '__main__':
get_recent_articles()
踩坑:xpath二次提取,前面加“.”。例如:article_title = item.xpath(‘./div/a/@title’)
想使用代码请注意
我在回首重新编辑本文时,发现QSR已经没有Recent articles这一块内容,可能取而代之的是Latest published。但对于本文一开始的立意(在学习python的同时锻炼实操)来说,再追加新的内容已经没有意义,温故知新已足矣。说到这里,为什么要爬取QSR或者说学术期刊呢?彼时打算自己写一个完全适合自己的DIY期刊阅读GUI,奈何执行力不够,就目前而言,订阅期刊邮件提醒反而是一个省时省力的方法。“不重复造轮子”才是最优的选择。