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
  • 相关阅读:
    web print
    datediff
    Typical AJAX
    sql中构建sql语句,再exec这条SQL语句
    ASP.NET中将数据输出到WORD、EXCEL、TXT、HTM
    sql中添加单引号
    sql语句批处理
    日期分组
    异步线程
    电脑内存大有什么好处?
  • 原文地址:https://www.cnblogs.com/birdshover/p/929013.html
Copyright © 2011-2022 走看看