使用python根据关键词批量获取Nature文章信息
使用,python,根据,关键词,批量,获取,Nature,文章,信息
2025-03-25 08:59:26 时间
今天介绍一下如何使用python来获取Nature官网的文章信息,流程还是和之前的爬虫教程基本一致。
首先我们打开Nature期刊的官网,网址为:https://www.nature.com/
然后我们点击官网右上角的search,输入我们想要文章信息的关键词。
我们以Genetic diversity(遗传多样性)为例做测试。
1.分析目标网址
点击搜索按钮,会出现文章相关信息。
这时我们发现网址为:
https://www.nature.com/search?q=Genetic%20diversity&order=relevance
点击第二页网址为:
https://www.nature.com/search?q=Genetic+diversity&order=relevance&page=2
要获取下一页只需要将数字2改为3,使用其他关键词可以将q后面的内容进行修改。
2. 模拟浏览器发送请求,获取响应内容
这次我们使用python的xpath语法进行网页内容解析.
导入相关包:
import csv
import requests
import time
import random#xpath相关库
from lxml import etree
构造请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',}
使用requests库模拟浏览器发送请求
response = requests.get(url=url,headers=headers).text
3.解析网页内容
使用谷歌浏览器检查发现每个文章信息都放在每个li标签内。
html = etree.HTML(response)
infos = html.xpath('//ul[@class="app-article-list-row"]/li')
通过逐步解析发现各个字段的xpath位置并逐个解析并打印出来:
字段类型有文章题目,文章链接,文章类型,是否开放获取,日期,发表期刊名称
name = info.xpath('./div/article/div[1]/div[2]/h3/a//text() | ./div/article/div[1]/div[1]/h3/a//text()')
#https://www.nature.com/articles/313316a0
articleurl = 'https://www.nature.com' + info.xpath('./div/article/div[1]/div[2]/h3/a/@href | ./div/article/div[1]/div[1]/h3/a/@href')[0]
zongxinxi = info.xpath('./div/article/div[2]//text()')
if len(zongxinxi) == 15:
leixing = zongxinxi[2]
isopen = 'openaccess'
date = zongxinxi[9]
qikanname = zongxinxi[11]
else:
leixing = zongxinxi[2]
isopen = 'closeaccess'
date = zongxinxi[5]
qikanname = zongxinxi[7]print(name,articleurl,leixing,isopen,date,qikanname)
4.将文章信息保存为csv格式
with open('naturearictleinfo.csv', mode='a', newline="") as csvfile:
csv_writer = csv.writer(csvfile, delimiter=',')
csv_writer.writerow([name,articleurl,leixing,isopen,date,qikanname])
打印数据详情
获取多页可使用for循环遍历。
整理数据后:
以上就是全部内容。
十分感谢!
相关文章
- Python 基于 selenium 实现不同商城的商品价格差异分析系统
- Python正则表达式,这一篇就够了!
- Python元祖详解
- python部分依赖踩坑
- Python+OpenCV实时图像处理「建议收藏」
- 二级Python选择题_二级python选择题题库
- Python实现商场管理系统
- python pip源更换国内镜像,速度加快10倍
- .app 域名发布了,我们可以使用 Python 做点什么?
- 用 Python 控制了室友电脑的开机密码
- Python进阶41-drf框架(三)
- Python 随机(Random)模块的不可预测之美
- [Python] 使用print作进度条(解决end=''时print不显示的问题)
- python测试框架unittest如何设置用例优先级_python 的 unittest 测试框架中的测试依赖怎么解决呢…[通俗易懂]
- Python基础15-日志模块logging
- Python进阶40-drf框架(二)
- 绘图技巧 |Bokeh超强交互式Python可视化库作品分享
- Python项目47-前后端分离登录注册页(继续撸)
- 记一次python清洗疫情历史数据
- Python每日一练(六)