前言
好久没更新文章,最近确实忙,今天抽点时间写写我最近忙着优化网站图片的事。由于本站使用的图床SM.MS,近期不少使用电信和联通运营商的朋友说图片加载慢,网站加载完要几十秒。因为我是移动,也有可能是我本地有缓存的原因,一直没觉得网站图片有问题。不过在最初开始使用SM图床的时候就已经知道不是长久之计,博主就花了2天时间来完成全站图片的转移。
图片抓取
这是今天的重点,我也前前后后考虑了多种方案。例如:利用插件自动保存至本地服务器等等···。以下的方案只是我个人在思考这个解决问题时想到的方法,并不是最佳方案。
方案1:python爬虫
- 获取全站文章链接(这个以前写过相关文章WordPress获取所有文章链接)
- python写爬虫一篇篇爬数据后,用re模块正则表达式findall()方法筛选出所有图片链接。
github地址:
1.不是很会玩爬虫,瞎写的,大佬勿喷;2.最初的版本不是这样,后来想法多了修修改改,现在的版本也不知道是在写什么,大家将就着看。。。单线程在跑,网站都吃不消,花了2分钟,把全站数据跑完,基本上只要正则表达式没问题就能取得所有图片链接。
方案2:数据库命令
- 进入到数据库,将wp_posts表导出为SQL格式(最好不要用其他格式,编码问题)
- 将下载的SQL文件用NotePad++等文本编辑器工具打开,复制其中所有内容。
- 打开任一在线正则表达式测试工具,将复制的内容和对应的正则表达式填入网页,即可提取所有图片链接。
- 用文本去重工具,去除一下重复行。
- 复制结果后,用notepad++稍做处理即可达到所有链接。
博主的话
以上是博主在思考“抓取全站图片”时的几个思路,个人觉得第二种方式最优。若有更好方案,还请留言评论,大家一起交流。
个人觉得在遇到问题时,自己多思考,想到办法后再想想自己的解决方案是不是最优方案,不要怕耽误工夫,因为你想出了一个最有解决方案后,以后碰到同样的问题,你可能只需要几分钟就能解决。
博客本就是分享和讨论个人经验的地方,如果大家有更好的办法,还请不吝赐教!
参考参考
妈耶,今天也是帅鸽