Python从入门到网络爬虫(23个Python开源项目)

前言

随着互联网的快速发展,大量的信息被不断地产生和积累,这也使得网络爬虫变得越来越重要。而Python作为一门高效、易用的编程语言,被广泛地应用于网络爬虫领域。本文将从多个角度分析Python开源爬虫项目的优缺点、应用场景以及未来发展方向。

下面给大家介绍23个GitHub上优秀的Python开源爬虫项目

1. WechatSogou – 微信公众号爬虫

基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。

github地址:

https://github.com/Chyroc/Wec...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=KLyVF18vEtDAn6fxSOU9HA%3D%3D.3kTXjklDtzaGPhcTOR77bzm3BPcMwRaLd%2Bb1KacFpH%2BYQxzTcMOrmMvelX7FUyHN

2. DouBanSpider – 豆瓣读书爬虫

可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分书籍;可依据不同的主题存储到Excel不同的Sheet ,采用User Agent伪装为浏览器进行爬取,并加入随机延时来更好的模仿浏览器行为,避免爬虫被封。

github地址:

https://github.com/lanbing510...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=2MtMvmYy4rlTKjZl53RIqg%3D%3D.fUtWKiFupK%2Fg7W1N3uMf4MsmXyM2ojjb7cZcr25KGycUq2yjPpcBsMy8%2FCYINICN

3. zhihu_spider – 知乎爬虫

此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用mongo

github地址:

https://github.com/LiuRoy/zhi...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=e%2BR75PlOTElc2lSLzbT21g%3D%3D.G2dWwnoq20Ng2v7zSwJl9XSDGVEWEQl7A3d4%2FTDe3HbW%2FGr%2FcQl4yj0TBtcMjeXt

4. bilibili-user – Bilibili用户爬虫

总数据数:20119918,抓取字段:用户id,昵称,性别,头像,等级,经验值,粉丝数,生日,地址,注册时间,签名,等级与经验值等。抓取之后生成B站用户数据报告。

github地址:

https://github.com/airingursb...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=E1%2BNm80uTkXGMSui6QgwVA%3D%3D.uIlMaiXKBdilTbT3yvTaGKRxGBtEklY9tucPS4YUqtaTQtElwE8WTi4fyNoTIGEB

5. SinaSpider – 新浪微博爬虫

主要爬取新浪微博用户的个人信息、微博信息、粉丝和关注。代码获取新浪微博Cookie进行登录,可通过多账号登录来防止新浪的反扒。主要使用 scrapy 爬虫框架。

github地址:

https://github.com/LiuXingMin...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=DIEhVbXZwyFmiphtlPyBYQ%3D%3D.mzYvOxlt7sxUnZscua3QioDLQO1CV5O5W04WXNPrbD6otsX1TImlXM2o17IMSUMh

6. distribute_crawler – 小说下载分布式爬虫

使用scrapy,Redis, MongoDB,graphite实现的一个分布式网络爬虫,底层存储MongoDB集群,分布式使用Redis实现,爬虫状态显示使用graphite实现,主要针对一个小说站点。

github地址:

https://github.com/gnemoug/di...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=BQDFpgjSNdIwExhWXHTWGg%3D%3D.t%2BeSF5YxKClrXxr9Xia5qyJjGRCQBEcyWS4%2BNkDpgissHrtsoN%2FPrUS5SjSXx92B

7. CnkiSpider – 中国知网爬虫。

设置检索条件后,执行src/CnkiSpider.py抓取数据,抓取数据存储在/data目录下,每个数据文件的第一行为字段名称。

github地址:

https://github.com/yanzhou/Cn...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=vhpzc6XBMcnagMvq99F0tw%3D%3D.s7KCmnlPPj3sEtW2%2FCt9pq%2FEvYKsL65%2F5diTPZ1D6fpSA4Dsl5OQ4r9mByOf%2Fh54

8. LianJiaSpider – 链家网爬虫。

爬取北京地区链家历年二手房成交记录。涵盖链家爬虫一文的全部代码,包括链家模拟登录代码。

github地址:

https://github.com/lanbing510...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=m1jp2iU8dcgEocx%2BDIIlww%3D%3D.5%2Fas1ZDgyXTga0m8mYyNLSL7ZcGdzFImP753ElglzJu9WxkBeKVbfxeNkhGeubmT

9. scrapy_jingdong – 京东爬虫。

基于scrapy的京东网站爬虫,保存格式为csv。

github地址:

https://github.com/taizilongx...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=DtrWggyWf3NiYFoQiL9Jdw%3D%3D.tUs2ybx9axFEXwkuxtM%2BFtyfjeZzHhoDdnyiO05j2Z6tgiTUvyBGF5oNyyNi%2Bg90

10. QQ-Groups-Spider – QQ 群爬虫。

批量抓取 QQ 群信息,包括群名称、群号、群人数、群主、群简介等内容,最终生成 XLS(X) / CSV 结果文件。

github地址:

https://github.com/caspartse/...icon-default.png?t=N7T8https://link.segmentfault.com/?enc=5YOR4sg5fLK%2BRh%2B9n0%2FAtw%3D%3D.eYcC8RKtwhUusnE7tPXcqA0MuY%2F0FaEH%2BeGXLygVD5vSelH7J58q%2BKnQfAUs439R

11. wooyun_public - 乌云爬虫。

乌云公开漏洞、知识库爬虫和搜索。全部公开漏洞的列表和每个漏洞的文本内容存在MongoDB中,大概约2G内容;如果整站爬全部文本和图片作为离线查询,大概需要10G空间、2小时(10M电信带宽);爬取全部知识库,总共约500M空间。漏洞搜索使用了Flask作为web server,bootstrap作为前端。

https://github.com/hanc00l/wo...

12. spider – hao123网站爬虫。

以hao123为入口页面,滚动爬取外链,收集网址,并记录网址上的内链和外链数目,记录title等信息,windows7 32位上测试,目前每24个小时,可收集数据为10万左右

https://github.com/simapple/s...

13. findtrip – 机票爬虫(去哪儿和携程网)。

Findtrip是一个基于Scrapy的机票爬虫,目前整合了国内两大机票网站(去哪儿 + 携程)。

https://github.com/fankcoder/...

14. 163spider

基于requests、MySQLdb、torndb的网易客户端内容爬虫

https://github.com/leyle/163s...

15. doubanspiders

豆瓣电影、书籍、小组、相册、东西等爬虫集

https://github.com/fanpei91/d...

16. QQSpider

QQ空间爬虫,包括日志、说说、个人信息等,一天可抓取 400 万条数据。

https://github.com/LiuXingMin...

17. baidu-music-spider

百度mp3全站爬虫,使用redis支持断点续传。

https://github.com/Shu-Ji/bai...

18. tbcrawler

淘宝和天猫的爬虫,可以根据搜索关键词,物品id来抓去页面的信息,数据存储在mongodb。

https://github.com/pakoo/tbcr...

19. stockholm

一个股票数据(沪深)爬虫和选股策略测试框架。根据选定的日期范围抓取所有沪深两市股票的行情数据。支持使用表达式定义选股策略。支持多线程处理。保存数据到JSON文件、CSV文件。

https://github.com/benitoro/s...

20. BaiduyunSpider - 百度云盘爬虫。

https://github.com/k1995/Baid...

21. Spider

社交数据爬虫。支持微博,知乎,豆瓣。

https://github.com/Qutan/Spider

22. proxy pool

Python爬虫代理IP池(proxy pool)。

https://github.com/jhao104/pr...

23. music-163

爬取网易云音乐所有歌曲的评论。

https://github.com/RitterHou/...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/308994.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建安全可靠的系统:第十六章到第二十章

第四部分:维护系统 原文:Part IV. Maintaining Systems 译者:飞龙 协议:CC BY-NC-SA 4.0 准备应对不舒适情况的组织有更好的机会处理关键事件。 尽管不可能为可能扰乱您组织的每种情况制定计划,但作为综合灾难规划策略…

作业--day44

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面。如果账号和密码不匹配&#xf…

C语言结构体的字节对齐

C语言结构体的字节对齐 什么是字节对齐 首先来看下面的程序&#xff1a; #include <stdio.h>typedef struct n1{int a;char b;char c; } N_stru1;typedef struct n2{char b;int a;char c; } N_stru2;int main() {N_stru1 n1;N_stru2 n2;printf("%d\n", siz…

MySQL从0到1全教程【1】MySQL数据库的基本概念以及MySQL8.0版本的部署

1 MySQL数据库的相关概念 1.1 数据库中的专业术语 1.1.1 数据库 (DB) 数据库是指:保存有组织的数据的容器(通常是一个文数据库 (database)件或一组文件)。 1.1.2 数据库管理系统 (DBMS) 数据库管理系统(DBMS)又称为数据库软件(产品)&#xff0c;用于管理DB中的数据 注意:…

【MySQL】视图,15道常见面试题---含考核思路详细讲解

目录 一 视图 1.1视图是什么 1.2 创建视图 1.3 查看视图(两种) 1.4 修改视图(两种) 1.5 删除视图 二 外连接&内连接&子查询介绍 2.1 外连接 2.2 内连接 2.3 子查询 三 外连接&内连接&子查询案例 3.1 了解表结构与数据 3.2 15道常见面试题 四 思…

道路拆除的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 题目大意&#xff1a; 主要思路&#xff1a; 至于dis怎么求&#xff1f; 代码code&#xff1a; 原题描述&#xff1a; 题目描述 …

盖子的c++小课堂——第二十四讲:差分数组

前言 嗨嗨嗨&#xff0c;这里是盖子的小课堂哟&#xff0c;这次更新主要是因为快放假了&#xff0c;时间多了&#xff0c;好嘞&#xff0c;废话不多说&#xff0c;点赞评论拿来吧你~ 差分数组 一维差分数组 假设给你一个数组 nums &#xff0c;先对区间 [a,b] 中每个元素加…

Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域并放大,Kotlin(3)

Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域并放大&#xff0c;Kotlin&#xff08;3&#xff09; 在文章2 Android Canvas图层saveLayer剪切clipPath原图addCircle绘制对应圆形区域&#xff0c;Kotlin&#xff08;2&#xff09;-CSDN博客 的基础上&…

LightGBM原理和调参

背景知识 LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架&#xff0c;具有支持高效率的并行训练、更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以处理海量数据等优点。 普通的GBDT算法不支持用mini-batch的方式训练&#xff0c;在每一次…

【博士每天一篇文-算法】Graph Structure of Neural Networks

阅读时间&#xff1a;2023-11-12 1 介绍 年份&#xff1a;2020 作者&#xff1a;尤家轩 斯坦福大学 期刊&#xff1a; International Conference on Machine Learning. 引用量&#xff1a;130 论文探讨了神经网络的图结构与其预测性能之间的关系。作者提出了一种新的基于图的…

如何在simulink中怎么获取足端轨迹代码解释?

在使用Java代码框架统计用户获取足端轨迹时&#xff0c;我们可以使用Simulink的外部接口功能和Java的网络编程来实现。 我们需要在Simulink中配置外部接口以便与Java进行通信。可以使用Simulink中的TCP/IP或UDP模块来实现网络通信。假设我们选择TCP/IP模块。 足端轨迹是机器人运…

kubernetes(k8s)集群常用指令

基础控制指令 # 查看对应资源: 状态 $ kubectl get <SOURCE_NAME> -n <NAMESPACE> -o wide 查看默认命名空间的pod [rootk8s-master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 3h53m查看所有pod [roo…

超过80%大厂都在用,Jetpack Compose现代Android界面开发的未来

超过80%大厂都在用&#xff0c;Jetpack Compose现代Android界面开发的未来 1. 引言 Jetpack Compose是一款用于构建Android界面的现代化工具包。目前该框架已经相对成熟&#xff0c;大厂包括Google、字节、阿里等大厂都在使用。根据反馈&#xff0c;普遍认为开发效率提高了很…

Linux最常用的几个系统管理命令

文章目录 Linux最常用的几个系统管理命令查看网络信息的原初 ifconfig默认无参数使用-s显示短列表配置IP地址修改MTU启动关闭网卡 显示进程状态 ps语法几个实例默认情况显示所有进程查找特定进程信息 任务管理器的 top常规使用显示完整命令设置信息更新次数设置信息更新时间显示…

智谱AI大模型ChatGLM3-6B更新,快來部署体验

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型&#xff0c;在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上&#xff0c;ChatGLM3-6B 引入了如下特性&#xff1a; 1.更强大的基础模型&…

FlinkAPI开发之数据合流

案例用到的测试数据请参考文章&#xff1a; Flink自定义Source模拟数据流 原文链接&#xff1a;https://blog.csdn.net/m0_52606060/article/details/135436048 概述 在实际应用中&#xff0c;我们经常会遇到来源不同的多条流&#xff0c;需要将它们的数据进行联合处理。所以…

JMeter 批量接口测试

一、背景 最近在进行某中台的接口测试准备&#xff0c;发现接口数量非常多&#xff0c;有6、70个&#xff0c;而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值。想了几种方案后&#xff0c;决定尝试使用JMeter的csv读取来实现批量的接口…

【Docker项目实战】使用Docker部署nullboard任务管理工具

【Docker项目实战】使用Docker部署nullboard任务管理工具 一、nullboard介绍1.1 nullboard简介1.2 任务看板工具介绍 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍2.3 注意事项 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四…

export default 和exprot

1.默认导入和默认导出 语法: export default {需要输出的内容} 接收: import 成员变量的名字 from 文件夹的路径 案例&#xff1a; a.mjs文件夹下默认导出 export default{a:10,b:20,show(){console.log(123);} } 在b.mjs文件中用成员变量进行接收 import AA from &q…

【昕宝爸爸定制】如何将集合变成线程安全的?

如何将集合变成线程安全的? ✅典型解析&#x1f7e2;拓展知识仓☑️Java中都有哪些线程安全的集合&#xff1f;&#x1f7e0;线程安全集合类的优缺点是什么&#x1f7e1;如何选择合适的线程安全集合类☑️如何解决线程安全集合类并发冲突问题✔️乐观锁实现方式 (具体步骤)。✅…