V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
robertding
V2EX  ›  问与答

下载链接与页面的问题

  •  
  •   robertding · 2014-02-27 18:50:20 +08:00 · 2662 次点击
    这是一个创建于 3682 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先分享一个网站 it-ebooks.info

    我很喜欢这个网站跟这个网站里的书

    在一本书的页面里都能找到直接下载书的链接

    直接点击链接是能直接下载电子书的

    但是。。。。。。。

    直接复制地址粘贴到地址栏里面则不能直接下载书 而是跳转到另一个页面

    其实吧。。。。。。

    我想用python爬虫下载整个网站的电子书
    当我请求书的下载地址的时候就返回给我了一个跳转的页面

    我想问问 为什么浏览器能直接点击下载而用 urllib2 请求地址的时候返回的是html页面文档

    如何才能爬一下这个网站呢
    7 条回复    2015-11-02 11:30:48 +08:00
    delphiqin
        1
    delphiqin  
       2014-02-27 19:03:59 +08:00   ❤️ 1
    你尝试过伪造 url reffer, user agent 以及 cookie 吗?
    delphiqin
        2
    delphiqin  
       2014-02-27 19:30:05 +08:00   ❤️ 1
    纠正,应该是 url referer

    搭车问一下我的问题:
    几个月前我抓过 www.appannie.com 这个网站的数据,程序一开始可以正常运行,但一般过2天左右,就会抓不到数据了,返回的错误码是 503 Service Temporarily Unavailable。我当时在抓数据的时候,会伪造 host, user agent, referer, cookie,但还是会被 appannie 检查出来是爬虫。之所以知道是被检测出来了,是因为程序是跑在公司内网的,在程序抓不回来数据的时候,我用浏览器依然能正常浏览那个网站。
    我想问一下,他们是怎么检测出来的?应该怎么破解?

    这是我用的抓数据的代码:
    https://gist.github.com/DelphiQin/b4f3efe40bc77a17b28d
    robertding
        3
    robertding  
    OP
       2014-02-27 21:03:04 +08:00
    @delphiqin 谢谢 我去试试
    robertding
        4
    robertding  
    OP
       2014-02-27 22:35:47 +08:00
    @robertding 谢了 果然靠谱
    oott123
        5
    oott123  
       2014-02-28 08:13:33 +08:00 via Android
    @delphiqin 你可以试试抓一段时间之后清理一次
    cookie 再继续爬…
    还看到有变态的,会在页面里嵌入一个 js 脚本,下次访问这个页面的时候,如果没有看到那个 js 设置的 cookie 就拒绝…不过我想你说的这个站没有这么高科技,应该就是针对 cookie 进行了请求限制。
    ameba
        6
    ameba  
       2015-10-30 10:35:29 +08:00
    发货了~
    ameba
        7
    ameba  
       2015-11-02 11:30:48 +08:00
    少年 登旺旺
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3547 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:54 · PVG 12:54 · LAX 21:54 · JFK 00:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.