
INFO-SPIDER 个人数据爬虫工具箱实战指南从环境搭建到 24 数据源取回个人数据【免费下载链接】InfoSpiderINFO-SPIDER 是一个集众多数据源于一身的爬虫工具箱旨在安全快捷的帮助用户拿回自己的数据工具代码开源流程透明。支持数据源包括GitHub、QQ邮箱、网易邮箱、阿里邮箱、新浪邮箱、Hotmail邮箱、Outlook邮箱、京东、淘宝、支付宝、中国移动、中国联通、中国电信、知乎、哔哩哔哩、网易云音乐、QQ好友、QQ群、生成朋友圈相册、浏览器浏览历史、12306、博客园、CSDN博客、开源中国博客、简书。项目地址: https://gitcode.com/GitHub_Trending/in/InfoSpiderINFO-SPIDER 是一个集众多数据源于一身的个人数据爬虫工具箱目标是以代码开源、流程透明的方式安全快捷地帮助用户从各数据平台拿回属于自己的数据并提供基于个人数据的可视化分析能力。本文以官方使用说明文档docs/README.md为主体结合仓库源码系统讲解项目定位、环境搭建、GUI 操作流程、数据源全景、代表性数据源的完整使用步骤与 JSON 数据格式以及博客数据可视化分析的实现原理。项目定位为什么要拿回自己的数据在互联网时代用户浏览的每个网站、注册的每个平台都在记录个人信息与行为足迹。个人数据分散在各类公司之间形成数据孤岛多维数据无法融合而作为数据生产者的最终用户却很少能分享属于自己的数据收益。INFO-SPIDER 正是为解决这一痛点而生它将分散在 GitHub、各大邮箱、电商平台、运营商、社交平台与博客平台上的个人数据聚合回来并进一步提供数据分析与可视化能力让用户更直观、深入地了解自己。从仓库结构可以印证这一设计思路所有数据源爬虫相互独立、可移植性高统一存放在 Spiders 目录下统一的 GUI 入口位于 tools/main.py数据分析示例可见于 tests/blog_analyse含 cnblog.ipynb 与词云、发文时间线 HTML 样例。核心特性一览官方文档明确了项目的八大特性构成理解整个工具箱的骨架安全可靠开源项目、源码可见、本地运行使用简单提供 GUI 界面点击数据源按钮并跟随提示操作即可结构清晰所有数据源相互独立、可移植性高爬虫脚本全部位于 Spiders 目录数据源丰富支持 24 个数据源并持续更新数据格式统一爬取的所有数据统一存储为 JSON 格式便于后期分析个人数据丰富尽可能多地爬取个人数据后期可按需删减数据分析提供个人数据的可视化分析目前部分支持文档丰富包含完整的使用说明文档与视频教程。从源码看数据格式统一这一点落实得非常彻底例如 Spiders/github/main.py 中将每次 API 响应直接写入user_infomation.json、user_repository.json等文件Spiders/cnblog/main.py 通过save_as_json()将文章列表序列化为cnblog_article.json。JSON 是整个数据链路的统一交换格式。环境准备与依赖安装根据官方 QuickStart运行 INFO-SPIDER 需要三部分环境安装 Python 3 与 Chrome 浏览器安装与 Chrome 浏览器版本一致的 chromedriver 驱动GUI 通过 Selenium 驱动浏览器完成自动登录与数据采集驱动版本必须与浏览器匹配安装依赖库Linux/macOS 下执行./install_deps.shWindows 下执行pip install -r requirements.txt仓库中的 install_deps.sh 内容如下除了 pip 安装依赖外还会预先安装 wxPython 所需的系统级图形与 WebKit 开发库build-essential、libgtk-3-dev、libgstreamer-plugins-base1.0-dev、libwebkitgtk-3.0-dev 等sudo apt-get install build-essential libgtk-3-dev libgstreamer-plugins-base1.0-dev libwebkitgtk-3.0-dev libxslt-dev freeglut3-dev pip3 install -r requirements.txtrequirements.txt 中锁定了完整依赖栈按用途可划分为几组GUI 与浏览器自动化wxPython4.0.7桌面 GUI、selenium3.141.0驱动 ChromeHTTP 请求与解析requests2.32.0、lxml4.9.1、beautifulsoup44.9.1、pyquery1.4.0数据处理与分析pandas1.0.1、numpy1.22.0、matplotlib3.2.0、pyecharts1.7.1图表、nltk3.9NLP、jieba分词博客分析使用输出与工具XlsxWriter1.2.9、openpyxl3.0.4、tqdm4.66.3、wxpy0.3.9.8、Pillow10.3.0、python_dateutil2.8.1。注意官方文档明确说明目前该工具箱仅在 Windows 环境下正常运行尚未在 Linux/macOS 环境下完成测试多平台兼容是后续迭代方向。GUI 工具运行与完整操作流程环境就绪后按以下步骤运行工具箱进入tools目录运行python3 main.py在打开的窗口中点击数据源按钮根据提示选择数据保存路径弹出的浏览器中输入用户名密码后会自动开始爬取数据爬取完成浏览器会自动关闭在对应目录下查看下载的数据xxx.json与数据分析图表xxx.html。在源码层面tools/main.py 完整实现了上述流程。程序启动后首先通过sys.path.append(os.path.join(BASE_PATH, ./Spiders/))将 Spiders 目录加入模块搜索路径并创建统一的DATA_DIR数据目录。GUI 基于 wxPython 构建Button类负责为每个数据源渲染 100×100 的位图按钮并绑定点击事件。登录与取 Cookie 是工具箱的核心机制Button类提供了多个自动化登录方法Automation(url)通过 Selenium 的ChromeOptions启动 Chrome并通过excludeSwitches: [enable-automation]与Page.addScriptToEvaluateOnNewDocument隐藏自动化特征navigator.webdriver置为 undefined降低被站点识别为爬虫的风险getCookie3(login_url, quit)打开登录页后轮询当前 URL一旦跳离登录页即认为登录成功随后读取全部 Cookie 拼装为namevalue;字符串getCookie2(login_url, curr_url, extra_url, quit)适用于登录成功后仍停留在指定页面如学信网account.chsi.com.cn的场景getCookie4(login_url, curr_url, quit)用于知乎等需要等待跳转的站点。以JdButton为例其OnClick流程是打开京东登录页 → 自动登录并提取 Cookie → 实例化JSpider→ 依次调用get_creditData()、get_browseDataNew()、get_income()、get_user_info()、get_addr()、get_xjk_info()、get_finance_income()、get_JY_bill()、get_follow_shops()、get_follow_products()等方法最后通过状态栏反馈爬取完成或爬取失败。两个实用的使用建议来自官方文档每个数据源的爬取可能生成多个文件建议为每个数据源单独新建文件夹保存数据分析功能仍在开发中目前仅部分数据源支持。数据源全景官方文档列出了当前已支持的全部数据源24 个持续更新按类别归纳如下类别数据源是否需要登录开发者平台GitHub无需输入用户名邮箱QQ邮箱、网易邮箱、阿里邮箱、新浪邮箱、Hotmail/Outlook邮箱需登录建议扫码电商京东、淘宝、支付宝需登录建议扫码运营商中国移动、中国联通、中国电信需登录内容社区知乎、哔哩哔哩、网易云音乐需登录社交QQ好友、QQ群、生成朋友圈相册需登录本地数据浏览器Chrome浏览历史无需仅支持 Windows出行12306需登录博客博客园、CSDN博客、开源中国博客、简书无需输入用户名/主页链接其中无需登录的数据源GitHub、知乎、博客园、CSDN、开源中国、简书仅需输入用户名或主页链接即可采集使用成本最低需登录的数据源则统一走Selenium 打开浏览器 → 用户手动登录扫码/账密→ 程序接管 Cookie → 自动爬取的流程。无需登录数据源实战GitHub 完整流程与数据格式GitHub 数据源无需登录只需输入 GitHub 用户名如kangvcar是上手最快的数据源官方文档给出了 4 步操作点击GitHub数据源按钮输入 GitHub 用户名选择数据保存路径建议新建独立文件夹因为会生成多个 JSON 文件查看爬取的数据JSON 格式。从源码 Spiders/github/main.py 可以看到GitHub 数据源本质上是对 GitHub 官方公开 API 的封装通过 requests 直接请求并落盘共生成以下文件输出文件内容对应源码方法调用 APIuser_infomation.json用户基本信息get_user_info()/users/{username}user_followers.json粉丝信息get_user_followers()/users/{username}/followersuser_following.json关注的人get_user_following()/users/{username}/followinguser_repository.json仓库列表get_user_repos()/users/{username}/reposuser_activity.json动态信息get_user_activity()/users/{username}/received_eventsuser_all_repos_detail.json每个仓库的详细信息get_user_repos_detail()遍历/repos/{username}/{repo}user_infomation.json的完整示例官方文档原文{ login: kangvcar, id: 20273349, node_id: MDQ6VXNlcjIwMjczMzQ5, avatar_url: https://avatars2.githubusercontent.com/u/20273349?v4, gravatar_id: , url: https://api.github.com/users/kangvcar, html_url: https://github.com/kangvcar, followers_url: https://api.github.com/users/kangvcar/followers, following_url: https://api.github.com/users/kangvcar/following{/other_user}, gists_url: https://api.github.com/users/kangvcar/gists{/gist_id}, starred_url: https://api.github.com/users/kangvcar/starred{/owner}{/repo}, subscriptions_url: https://api.github.com/users/kangvcar/subscriptions, organizations_url: https://api.github.com/users/kangvcar/orgs, repos_url: https://api.github.com/users/kangvcar/repos, events_url: https://api.github.com/users/kangvcar/events{/privacy}, received_events_url: https://api.github.com/users/kangvcar/received_events, type: User, site_admin: false, name: Kangvcar, company: null, blog: https://kangvcar.com, location: Shenzhen, China, email: null, hireable: true, bio: 知识的传播者优质的产品, twitter_username: null, public_repos: 76, public_gists: 2, followers: 17, following: 2, created_at: 2016-07-04T02:02:34Z, updated_at: 2020-07-13T17:35:51Z }user_followers.json粉丝与user_following.json关注的人为数组结构每个元素包含login、id、avatar_url、html_url、type、site_admin等字段可用于绘制关注关系图谱user_repository.json仓库信息每个元素包含name、full_name、description、fork、language、stargazers_count、forks_count、created_at、default_branch等完整仓库元数据可直接用于分析个人开源贡献分布。需登录数据源的通用流程与关键数据示例对于邮箱、电商、运营商、社交平台等数据源官方文档给出的流程高度一致点击数据源按钮 → 弹出浏览器登录建议扫码→ 选择保存路径 → 自动爬取 → 查看 JSON 数据。以下汇总各数据源的关键输出文件与字段含义。邮箱类QQ / 网易 / 阿里 / 新浪 / Hotmail-Outlook数据源输出文件关键字段QQ邮箱qqmail_1.json收信箱第 1 页按页命名send_user、mailid、title、time、email_addr、content网易邮箱wangyiemail_20.json前 20 封邮件mid、send_user、time、content阿里邮箱aliyun_mail.json全部邮件subject、from、to、timestamp、encSummary、folderId、status新浪邮箱sina_1.json第一页邮件mid、title、send_user、email_addr、content_jsonHotmail/Outlookhotmail.json全部邮件send_user、title、time、content以 QQ 邮箱为例数据为数组结构每个元素表示一封邮件[ { send_user: no_reply, mailid: ZC2702-CkApVu7KhFyaayd5XnupXa7, title: Apple *********************icloud.com, time: *****e5, email_addr: no_replyemail.apple.com, content: **************** }, ... ]电商类京东 / 淘宝 / 支付宝京东数据源输出文件最丰富官方文档逐一给出了数据说明输出文件内容addr.json收货地址name/addr/detail_addr/mobile/tel/emailcreditData.json信用数据isOverdue、creditLimit、availableLimit、tourCreditLimit 等finance_income.json理财收入incomeYes、incomeTotal、holdAmountfollow_products.json关注的商品name/url/price/statusfollow_shops.json关注的店铺name/urlincome.json每日收益明细date/incomejd_orders_2018.json按年份命名的订单信息productId、name、wareUrl、price、categoryString 等jiaoyi_bill.json发票信息resultList、pin、resultCountuser_info.json个人基本信息userNickName、userRank、jdScore、plusStage、isStudentwallet.json钱包信息walletMoney、freezeMoney、totalMoney、incomeTotal 等以user_info.json为例[ { isAuthenticated: 1, userNickName: ddddddr, userRank: Diamonds, isEmploy: 0, isStudent: 1, flagInfo: 10000000000003303000000000010500100100002000006300001000000080000000000000000000000000000000000000, headImg: http://storage.360buyimg.com/i.imageUpload/6a645f3430346535396536dd1363831353232323232343432393732_mid.jpg, jdScore: 1114, plusStage: TRYEXPIRE } ]淘宝数据源输出addr.json地址name/area/detail_area/youbian/mobile、收藏商品title/url/price、浏览足迹date/url/name/price与订单信息订单号、店铺、商品、金额明细。支付宝数据源则输出个人注册信息name/email/mobile/tb_name/register_time、余额YuE、账单number/time/info/income/outcome/balance与余额宝信息eye-val/total_val/Unavailable_val。运营商类中国移动 / 中国联通中国移动输出yidong_bill.json以月份为键如202006、202005每个月份下为账单条目数组包含itemName如38元4G飞享套餐青春版与itemValue金额字段可用于逐月统计话费构成。中国联通输出两个文件10010_user_info.json号码个人信息包含mobile、packageName、openDate、brand_name、custlvl用户星级、nickName、lastLoginTime等10010_bill_info.json账单信息包含totalMonthData近 12 个月每月费用、billList月固定费、增值业务费等明细、score积分等。社交与内容平台知乎无需登录输入英文用户名url_token输出user_profile.json个人基本信息name/gender/headline/vip_info、user_followers.json与user_followees.json粉丝/关注含 paging 分页信息与 totals、user_articles.json文章title/excerpt/voteup_count/comment_count、user_activities.json动态 feed含 verb 动作类型与user_zvideos.json视频信息。哔哩哔哩需登录输出user_info.jsonmid/uname/sign/birthday/sex/rank与bilibili_history.json观看历史含视频 title、tname 分区、view_at 时间、stat 播放/弹幕/点赞数据。网易云音乐支持手机号密码与邮箱密码两种登录方式输出user_detail.json个人信息level/listenSongs/profile/bindings/createDays、user_record_all.json听歌总榜score 评分 歌曲详情、user_record_week.json听歌周榜、user_playlist.json收藏歌单、user_follows.json粉丝、user_followeds.json关注的人、user_event.json动态。QQ好友 / QQ群QQ 好友流程为登录后进入QQ充值页面点击更换按钮展开好友列表再点击已登录并打开充值界面且点开列表按钮开始爬取输出friend_list.jsonraw/group/view_name/qqnumberQQ 群则以群名命名输出 JSONmember/nick_name/qqnumber/sex/qqage/join_date/last_post。生成朋友圈相册先通过微信公众号出书啦获取朋友圈专属链接程序据此自动生成 PDF 格式的个人朋友圈相册。Chrome 历史记录无需登录但仅支持 Windows默认读取C:\Users\Username\AppData\Local\Google\Chrome\User Data\Default下的 History 数据库输出browser_data.json包含urls.url、urls.title、urls.visit_count、urls.last_visit_time、visits.visit_time等字段。12306需登录输出user_info.json账号基本信息user_name/id_no/mobile_no/sex_code/born_date、user_address.json车票快递地址、user_passengers.json常用联系人passenger_name/id_no/mobile_no/passenger_type_name、user_order.json未出行订单与user_order_no_complete.json未完成订单。博客数据分析词云与发文趋势可视化数据分析是 INFO-SPIDER 的差异化能力之一。官方文档显示目前数据分析功能支持博客园、CSDN博客、开源中国博客、简书四个博客类数据源会在数据目录下额外生成 HTML 格式的分析图表如文章词云、发文数量分析。以 Spiders/cnblog/main.py 为例博客园数据源的完整流水线是文章采集get_element_of_article()以page参数循环请求https://www.cnblogs.com/{blogname}/default.html用 BeautifulSoup 解析div.day节点通过正则提取标题postTitle、摘要c_b_p_desc、发布日期postDesc中的\d{4}-\d{1,2}-\d{1,2}、发布时间\d{2}:\d{2}与阅读量post-view-count配合 tqdm 展示进度落盘 JSONsave_as_json()将文章列表写入cnblog_article.json词频统计get_text()用 pandas 读取 JSON 提取标题文本 →split_word()使用 jieba 分词并结合 tools/stop_word.txt 停用词库过滤无意义词汇 →word_counter()用 Counter 统计 Top 100 高频词词云生成create_wordcloud()基于 pyechartsWordCloud生成topic_wordcloud.html标题为你的文章词云副标题基于你的博客数据生成发文趋势create_postdate_line()将发文日期按月聚合基于 pyechartsLine生成postdate_line.html发文数量折线图。博客园示例数据cnblog_article.json结构如下[ { title: Lua骚操作——三元条件运算符, sumary: 摘要本文地址https://www.cnblogs.com/oberon-zjt0806/p/13337577.html ..., postdate: 2020-07-18, posttime: 22:14, views: 44 }, ... ]与之对应tests/blog_analyse 目录提供了分析脚本的 Notebookcnblog.ipynb、停用词库stop_word.txt以及词云topic_wordcloud.html与发文时间线postdate_line.html的成品样例可作为二次开发的参考。CSDN、开源中国、简书的文章结构与此类似title/sumary/postdate/posttime/views其中开源中国与简书需要输入个人主页链接且链接末尾不能带/斜杠。常见问题与使用注意事项综合官方文档的提示使用过程中需注意以下几点平台限制v1.0 版本仅在 Windows 平台测试Python 3.7Chrome 历史记录功能更是仅支持 Windows驱动匹配chromedriver 必须与 Chrome 浏览器版本一致否则 Selenium 无法驱动浏览器登录方式涉及账号的数据源建议使用扫码登录避免在自动化浏览器中留下账密明文目录规划每个数据源可能生成多个文件务必为每个数据源单独建立保存文件夹时效性爬虫依赖目标网站页面结构站点改版后需要持续维护更新隐私边界工具只应在本人账号、本人设备上运行取回的均为自己的数据。版本演进Changelog官方文档记录了项目的迭代轨迹2020 年2020-07-10更新 GUI 布局新增 GitHub、QQ好友、QQ群数据源2020-07-12修复 QQ/网易/阿里/新浪/Hotmail/Outlook 邮箱数据源新增生成朋友圈相册2020-07-14修复京东、淘宝、支付宝、12306新增 Chrome 浏览记录2020-07-17修复中国移动、中国联通新增知乎、哔哩哔哩、网易云音乐2020-07-19新增博客园、CSDN、开源中国、简书数据源并编写使用说明文档、录制视频教程2020-07-30新增博客园数据分析功能使用 pyecharts 绘制图表并生成 HTML 文件保存在数据目录2020-08-18 / 2020-09-12修复部分 bug、更新 README、更换项目 Logo2020-10-20更新所有爬虫脚本制作 Python-embed 版 InfoSpider。这一演进脉络清晰地展示出项目先补齐数据源广度、再深化数据分析深度的路线后续迭代方向还包括 Web 界面操作、机器学习与 NLP 深度分析以及更多数据源接入。总结INFO-SPIDER 的核心价值在于把分散在 24 个平台上的个人数据以统一 JSON 格式聚合回本地让用户重新成为自己数据的掌控者。通过本文你可以完成 Windows 环境下的依赖安装与 GUI 启动掌握点击按钮 → 登录 → 选择目录 → 自动爬取 → 查看 JSON的标准化操作理解 GitHub 等无需登录数据源对公开 API 的封装方式以及京东、邮箱、运营商等数据源的字段结构还能借助博客园示例复现采集 → 分词 → 词云/折线图的个人数据分析流水线。如需深入定制可直接复用 Spiders 下相互独立的数据源模块将其移植到自己的程序中。【免费下载链接】InfoSpiderINFO-SPIDER 是一个集众多数据源于一身的爬虫工具箱旨在安全快捷的帮助用户拿回自己的数据工具代码开源流程透明。支持数据源包括GitHub、QQ邮箱、网易邮箱、阿里邮箱、新浪邮箱、Hotmail邮箱、Outlook邮箱、京东、淘宝、支付宝、中国移动、中国联通、中国电信、知乎、哔哩哔哩、网易云音乐、QQ好友、QQ群、生成朋友圈相册、浏览器浏览历史、12306、博客园、CSDN博客、开源中国博客、简书。项目地址: https://gitcode.com/GitHub_Trending/in/InfoSpider创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考