zoukankan      html  css  js  c++  java
  • 机器人抓新浪博客

    新浪的博客有点怪,就用户机制说,新浪博客更真实的用户应该是UID,而不是用户名。因此,每次打开链接,http://blog.sina.com.cn/username

    实际上会先请求出uid,而用uid进行后面的访问。比如列表页 http://blog.sina.com.cn/sns/service.php?m=feeds&uid={0}&page=1    {0}的地方就是要用的uid。

    而我用C#模拟请求也一直抓不对,同样的链接居然和浏览器看到的源代码不一样。实验发现设置

    UserAgent = "Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.2;SV1;Poco 0.31)";
    UserAgent = "Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)";

    得到两个不一样的结果,看来新浪居然是做了检查http头的。

    把UserAgent 设置为"Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.2;SV1;Poco 0.31)";,也就是IE浏览器核心的头,可以请求到一个地址,但是该地址仍然后问题,内容是js,分析js后发现加载的实际页面是http://v35.blog.sina.com.cn/{0}.而在v35的页面中才可以找到uid的值,然后把uid代入http://blog.sina.com.cn/sns/service.php?m=feeds&uid={0}&page=1地址,最后在http://blog.sina.com.cn/sns/service.php?m=feeds&uid={0}&page=1地址中分析下一页和页面链接。

    新浪搞得也太麻烦了......


    birdshover
  • 相关阅读:
    创建大顶堆
    大顶堆的实现
    二叉树的前序,中序,后序,层序实现
    链表实现多项式相加
    225. Implement Stack using Queues
    232. Implement Queue using Stacks
    JavaScript 实现队列操作
    Vue 路由守卫
    回文数 & {}[]() 符号判断

  • 原文地址:https://www.cnblogs.com/birdshover/p/929013.html
Copyright © 2011-2022 走看看