微信文章精选

功能概要

为什么会想到做这样一个爬取站呢?

平时喜欢看看微信公众号文章,订阅的公众号不是很多,有时一会儿就看完了。
一次无意间发现一个新大陆 搜狗微信搜索 还是官方的,这简直是微信版的头条啊,可以可以!

于是乎我就在这网站遨游一番,发现一个非常不好的体验(手机版):
点击加载更多(也就是所谓的分页),然后查看一篇文章,再返回,它..竟然...重新加载了,分页也没了,刚才看到哪儿也不知道了。那我就不能忍了哈,决定徒手撸一个,体验一定要比官方的好!

  1. 我们怎么拿到它的数据呢?
  2. 如果拿到,那数据结构是怎样的呢?
  3. 怎么解决返回刷新重载的问题呢?

不急,一步步来
首先,打开 http://weixin.sogou.com
当然要打开 Chrome 调试模式 F12
往下滑,点击 加载更多内容,这时,我们看到它发起的是 Ajax 请求

Jietu20190310-130040@2x.jpg

点击加载更多内容 ,就加载一页数据
//这是第一个栏目新加载的一页数据
http://weixin.sogou.com/pcindex/pc/pc_0/1.html

依此类推,下一页就变成
http://weixin.sogou.com/pcindex/pc/pc_0/2.html

而切换一个栏目,改变的是 pc_1
http://weixin.sogou.com/pcindex/pc/pc_1/pc_1.html

分析发现 pc_1,pc_2... 代表栏目; 1,2,3...代表页码

总共有20个栏目类别

Jietu20190310-130320@2x.jpg

返回的数据是一些 html
数据结构弄清楚了,理清思路,直接上成品吧

最终效果如下:

需要注意的是:

  1. 微信图片做了防盗链处理 这里用到<meta name="referrer" content="never">这个html标签作处理
  2. 返回不重载用到了sessionStorage
  3. 版权问题:我们只是大自然的搬运工,所有文章均会跳转到微信网站,本站没有建立相应数据库,更没有存储数据
  4. 隐私问题:为了优化用户体验,只记录浏览行为,不记录、不跟踪用户个人信息

更多代码细节请访问 github源码 ,欢迎Star

标签: 无

发表评论:

  • 上一篇: 没有了
  • 下一篇: 没有了