HMDB数据库爬虫案例:一个高效、自动化的Python爬虫脚本
原文地址:https://itxiaozhang.com/hmdb-database-crawler-case-study-efficient-automated-python-script/
本文配合视频食用效果最佳,视频版本在文章末尾。
这个程序是做什么的?
这是一个专门为科研人员设计的网络爬虫工具。它的主要任务是从一个名为HMDB(人类代谢物组数据库)的网站上,自动、批量地抓取代谢物的相关信息。简单来说,你给它一批代谢物的编号(HMDB ID),它就能帮你把这些编号对应的详细分类和来源信息从网站上找回来,并整理好。
主要功能
读取数据源:程序会自动读取
data
文件夹下所有的Excel文件,并从每个文件的第一列中提取出所有格式为HMDBXXXXXXX
的代谢物编号。网络数据抓取:对于每一个提取到的HMDB编号,程序会访问HMDB网站上对应的网页,并抓取以下三个关键信息:
- Class (分类)
- Sub Class (亚类)
- **Source (来源)**:判断该物质是内源性(Endogenous)还是外源性(Exogenous)。
结果保存:抓取到的信息会以表格形式,保存到
result
文件夹下一个同名的Excel文件中。每一行对应一个HMDB编号和它抓取到的信息。缓存机制:程序非常智能,它会把查询过的结果保存在一个名为
hmid_cache.json
的缓存文件中。下次运行时,如果遇到相同的编号,它会直接从缓存中读取数据,而不是重新访问网站,这极大地提高了效率并减少了不必要的网络请求。断点续传:得益于缓存机制,如果程序在中途因为网络问题或其他原因中断,下次重新运行时它会自动跳过已经成功处理的编号,从上次中断的地方继续,非常省心。
程序特点
自动化与批量处理:你只需要把包含HMDB编号的Excel文件放进
data
文件夹,运行一次程序,它就能自动处理所有文件,无需人工干预。高效稳定:
- 多线程处理:程序会同时开启多个线程(默认为5个,可以自己设置)来抓取数据,就像多个人同时在工作,速度比单线程快很多。
- 智能重试:如果遇到网络波动或网站临时访问不了,程序会自动尝试重新连接,确保数据抓取的成功率。
用户友好:
- 进度条显示:在程序运行时,你会看到一个清晰的进度条,告诉你当前处理到哪里了,还剩多少任务。
- 详细日志:程序会把运行过程中的所有重要信息(如哪个文件处理成功,哪个编号查询失败)记录在
hmdb_scraper.log
日志文件中,方便你随时查看或排查问题。
高可配置性:你可以通过命令行参数来调整程序的行为,例如:
- 调整同时工作的线程数量(
--workers
)。 - 设置是否使用缓存(
--no-cache
)。 - 调整请求之间的时间间隔(
--delay
)。
- 调整同时工作的线程数量(
部分代码
1 |
|
视频版本
▶ 可以在关于或者这篇文章找到我的联系方式。
▶ 本网站的部分内容可能来源于网络,仅供大家学习与参考,如有侵权请联系我核实删除。
▶ 我是小章,目前全职提供电脑维修和IT咨询服务。如果您有任何电脑相关的问题,都可以问我噢。