一个极简的WebScraper爬取数据并用Pandas处理数据的案例
本文使用 Zhihu On VSCode 创作并发布
#爬虫 #python
在逛知乎、刷微博时,我们有时候可能想要做一些批量操作,比如批量导出自己的微博,批量导出自己的知乎收藏答案等等,这个时候就是WebScraper+Pandas大显身手的时候了
使用WebScraper爬取数据
首选先安装WebScraper这个Chrome插件:Chrome应用商店国内浏览器插件网站
网站的样式如下
网站url的正则匹配表达式为,这里我的待读列表的分页只有0-2
设置要抓取的站点url
打开调试工具-WebScraper,添加新站点,输入名称和url的正则表达
添加selector选择要抓取的数据
输入id名,选择抓取的数据为Link,勾选Multiple支持多选,点击select,然后依次点击前两个标题即可全选本页的所有标题了,然后下方的点击Done selecting,一个数据抓取器就添加完成了。
此时可以点击 Data preview 查看是否真的有数据被选中了,弹出如下表格就是真的创建Selector成功了
开始抓取数据,并导出数据为csv文件
先点击Scrape抓取数据,它会自动新建浏览器窗口打开指定url,模拟真人查看网页。
如果url有点多的话,可能会稍稍要等一会。
过一会数据就抓好了,然后可以点击Browse查看抓取到的数据,最后点击'Export data as Csv',就可以将表格数据都导出为csv文件了。
导出的csv文件样式
文件内容如下:
我想将它转换成MarkDown格式的链接列表,类似下面这样,其实直接正则替换也行,但是那怎么考验真正的技术呢,所以我打算用python的库pandas来根据csv数据来导出这样的样式,这样就算以后有更复杂的场景,也都不在话下了。
使用Pandas处理数据
安装anaconda
首选安装 Annaconda 这个Python集成开发软件,因为它自带了很多数据分析的模块,不用我们再去额外安装了,很省心。
国内下载可能有点慢,推荐使用镜像源:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
至于安装过程中的一些配置,可以参考:【Anaconda教程01】怎么安装Anaconda3 - 知乎
启动jupyter
安装好了以后,直接命令行启动jupyter,然后在打开的类似页面下(建议将此页面保存为书签,方便随时写代码),就可以新建python3环境的ipynb代码了。
Jupyter Notebook可以在网页页面中直接编写代码和运行代码,每一个Block的代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写MarkDown说明文档,可在同一个页面中直接添加Block来编写,便于作及时的说明和解释。类似这样的,就是一个Block。
Pandas读取csv文件并修改数据
小笔记
以后每次做一个小案例,都可以将一些以后可以复用的代码抽取出来,用一个标题表示用处。Obsidian仓库可将文章中的各级标题做块引用,是笔记管理的利器。为什么不用gist,因为有的时候一个代码用法可能涉及到多个类,用gist不够灵活。
Chrome书签格式
Python写入字符串到文件
DataFrame做正则替换
DataFrame截取指定行和列
按行遍历DataFrame
字符串做正则替换
和DataFrame不太一样,不如DataFrame简洁
参考资料
以后每次边写笔记边搜索资料时,都可以将有用的链接贴在这里。可以用hypothes在链接网页上做高亮和标注,这样下次打开的话,也能看到之前的高亮标注,可以有效防止重复阅读。参考资料的链接格式统一为,方便正则匹配到,以后定期扫描自己的本地所有md文件里面的该模式字符串,自动生成一个chrome书签格式的链接列表,然后导入到Cubox这个书签管理神器里面,可以批量备份网页,这样就算原始链接失效了,也还有Cubox里面的备份可以看。python - 如何在pandas.Series.str.replace()中使用正则表达式 - IT工具网【python】用正则表达式进行文字局部替换_weixin_34216196的博客-CSDN博客Pandas 用户指南目录 | Pandas 中文《Python Cookbook》3rd 中文版3.0.0Pandas 数据结构 – DataFrame | 菜鸟教程用pandas中的DataFrame时选取行或列_wanglingli95的博客-CSDN博客_pandas取行正则表达式在线测试 | 菜鸟工具正则表达式 – 语法 | 菜鸟教程爬虫工具(二) webscraper 教程 (知乎案例) | 自由微信 | FreeWeChatGoogle Chrome插件下载|谷歌浏览器插件商店|谷歌浏览器下载-Chrome网上应用店手把手教你如何在 Windows 安装 Anaconda - SegmentFault 思否