手把手教用爬虫爬sciencedirect学术研究

前言

爬虫有风险,仅作为个人学习研究,无商业用途。

背景

做过学术研究的小伙伴都很应该很清楚知网了,看英文文献的话更加不会错过Elsevier,sciencedirect。每当老板问:知道别人都在做一些什么研究吗?别的组都在从事什么方向了解吗?相关文献要多读一下。。。开始踏入学术圈的嘎杂,犹如无头苍蝇,摸不清楚方向,就算打不死也要愁死了。当然如今的工具琳琅满目,很多问题只需要点点鼠标就可以带给我们答案。但嘎杂并不满足于现状,它想发现更加有趣的东西,它的好奇心想知道,每年某期刊都发了多少文章,每个月都发了多少文章,自己领域课题的文章占总文章的多少,哪些课题组产文章很强。。。这鼠标操作可解决不了啊,嘎杂在苦苦寻找其他解决方案。

最近它得知一传说,在网上有一神兽,可以有呼天唤地之力量,在互联网中穿梭自由,过及之处,可挥一挥衣袖,带走所有云彩,这就是—爬虫

小伙伴问:“不需要这么麻烦,我去买一个不就完事了,要学会运用资本的力量。“ 嘎杂想了一下,觉的非常有道理,于是乎去联系了一下各路神仙,发现的确用钱能解决的事情那都不是事情,但是要有一个重要的前提,那就是得有点💰。

晚上躺在床上辗转反侧,夜不能寐,掏了一下自己的兜,仰天长啸问自己值得吗?另一个自己对自己说:“自己养一只🐛吧,一劳永逸。“

于是乎一个跟斗滚下来,开始了训🐛计划。

培养一只训练有素的爬虫需要我们给予它正确的平台和装备,好的枪才能打到猎物,嘎杂在这里选择的就是python,装备当然就是python包:requests, beautifulsoup, re, json, pandas等等,主要要根据自己的应用场景和需求,增添自己的装备。

本场景就是带大家装备自己的学术爬虫,来在sciencedirect上爬取自己想要的学术信息,为以后的数据分析提供数据基础。

基础知识

requests

requests的功能十分强大,但对嘎杂来说就一个,那就是读一下网页地址。
比如说:某一篇学术文章
在这里插入图片描述
嘎杂想把这里面的关键信息内容都获取到,那就肯定要先让python打开这个网站读一下。

import requests

url = 'https://www.sciencedirect.com/science/article/pii/S2666651020300012'
headers = {
   'user-agent': '(Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}
res = requests.get(url, headers=headers)

这里的headers主要的作用就是模拟人的行为,因为这是一场智慧的博弈,有攻就有守,有的网站也有反爬虫利器,为了防不胜防,只能让自己更像人,但仅仅有headers也不是总管用,后续要进阶就要使用更高级的伪装方法。目前仅仅用headers够用了,严谨地说,在发表此博客的这个时刻。至于高级的伪装方法,那就是。。嘎杂也还没会🤭。

beautifulsoup

美丽汤,是爬🐛的营养物,也是嘎杂的营养物,当喝下这碗汤,就像吃了哆啦A梦的记忆🍞,把知识点都记入脑袋里了。

from bs4 import Beautifulsoup

bsObj = Beautifulsoup(res, 'lxml')

输出一下,发现好乱啊,遇事不要慌,先掏出电脑。。。打开chrome浏览器。。。
在这里插入图片描述
这里需要有一点点浏览器知识。

Chrome 中的 inspect

选择到某一块内容,点击鼠标右键,点击inspect。
在这里插入图片描述
然后发现新大陆
在这里插入图片描述
原来这些页面上的文字就是这么产生出来的。
bsObj其实就是把这个网页中的源代码读取下来了。

这时候就发现规律了,每一块内容对应到不同的<xxx>.$.%.&#.<xxx>里头,那我只要定位就可以找到相应的内容了吧?

这里我们用findAll(可以有很多方式达到,比如说用find也可以,这里提供我自己用的其中一个方式)。这个输出返回的是一个list

title = bsObj.findAll('span', class_="title-text")
print(title)
>output:[<span class="title-text">AI-driven drug discovery: A boon against COVID-19?</span>]

那我只想要里头的题目内容怎么办呢?👇

title_text = title[0].text
print<
  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值