最近想看看「TBtools」用户都是怎么用的 TBtools,用 TBtools 主要是来干啥?是谁在使用?云云。
为此,需要进行和以前类似的分析。早前,邵扬老铁写个一个精彩稿子,详细见《好家伙,到底谁在用TBtools》。至今三年,其中分析的是 TBtools-I 文稿发表前后的概况。大体主题是:
- 越来越多的文章使用并引用TBtools
- TBtools的用户都喜欢把文章发在谁家?
- 用户最爱用热图
- 使用了TBtools的文章都发在了什么水平杂志上
- TBtools用户都喜欢研究什么
那会一共只会有500个引用。谁也没想到这两三年用户增长太快。爬取数据用的是 Publish or perish。这个软件支持了大规模数据自动爬取,是1000个。比较尴尬的是,现在 TBtools 实际上有 >10000 次引用,远远超过 publish or perish 的支持。即使是限制一年区间,那么也有3000+次,故此路不通。
如何相对完整地收集 TBtools 相关引用文献?我只能想起来早前分享的几行命令。
两行命令-批量快速整理google scholar检索结果。可以快速批量下载和整理,然而,当我开心的跑到Digital Ocean的主机上运行时,大体爬不到500个 ip 就被封了。再换另一个主机,同样不到 500 个就会被封。于是,只能上代理,而且还得能正常访问谷歌学术的代理。
如何让windows下的 wsl2 能通过宿主机代理访问谷歌学术,这是一个问题。我折腾了许久,最后发现是宿主机防火墙的问题。直接关掉防火墙就可以了。
具体相关教程参考
https://zhuanlan.zhihu.com/p/640242841
实际操作时,我设置一个代理主机为活动主机,爬取 400 个记录,换个主机,再继续爬。速度可以很快。当然这个可以自动化,但现在我在高铁上,倒是没必要。
from=2210
totalRecord=2700
maxBreakTime=3
for start in `seq $from 10 $totalRecord`;do wget -e robots=off -H --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" -nd "https://scholar.google.com/scholar?as_vis=1&start=$start&q=%22TBtools%22&hl=en&as_sdt=1,31&as_ylo=2016" -O google.$start.info;
sleeptime=`echo $RANDOM%$maxBreakTime|bc`
echo "sleep time:" $sleeptime "s"
echo "max remain time:" `echo \($totalRecord-$start\)/10*0.5|bc` "mins"
echo "max remain time:" `echo \($totalRecord-$start\)/10*0.5/60|bc` "hours"
sleep $sleeptime;
done
通过修改 from 和 totalRecord 参数,即可限制对应的记录爬取区间。
下载结束后,参考前期推文整理即可。
题外话
此外,我还尝试了其他不少,包括直接从 Web of Science 中导出引用信息(数目比较少,只有5000+条目),提取 doi 号之后,使用 Scihub Pro 软件进行全局大规模批量下载(我发现这个软件每次只支持 1000 个)。大体上,2023年的基本是下载不到了,这个有2000+个,所以最后估计会得到 2000+ 个论文 PDF。
突然觉得结合之前的词频分析插件,是不是可以做一些有趣的东西?
网友评论