V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yangyaofei
V2EX  ›  程序员

如何抓取所有搜狗的词库? 用 python

  •  
  •   yangyaofei ·
    yangyaofei · 2016-01-13 19:09:22 +08:00 · 5144 次点击
    这是一个创建于 2997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近做语言处理,要用词库,然后准备抓搜狗的词库
    比如 http://pinyin.sogou.com/dict/cate/index/1
    http://download.pinyin.sogou.com/dict/download_cell.php?id=15206&name=%E5%8A%A8%E7%89%A9%E8%AF%8D%E6%B1%87%E5%A4%A7%E5%85%A8%E3%80%90%E5%AE%98%E6%96%B9%E6%8E%A8%E8%8D%90%E3%80%91

    本人 python 小白,抓取的时候会显示 403,估计是防盗链,然后谷歌了一些模拟浏览器的代码,发现依然是 403
    最后发现我直接打开这个链接就是 403,在词库下载的页面就可以下载,想问这个用的是什么防盗链的技术啊~
    有没有人帮解释一下,告诉我可能用到的东西我自己去试试也好~比如 cookie?还是什么的~html 不是没有状态的么.cookie 不是在整个浏览器里面的吗,为啥我复制链接到新 tab 下就不行了呢......
    求解答~~~

    15 条回复    2017-04-26 11:13:43 +08:00
    kchum
        1
    kchum  
       2016-01-13 19:12:01 +08:00 via iPhone
    你可以设置 headers 试下
    yangyaofei
        2
    yangyaofei  
    OP
       2016-01-13 19:13:32 +08:00
    @kchum 试了~~就是加浏览器标示是吧~~没用的~~没反应...
    fractal314
        3
    fractal314  
       2016-01-13 19:23:19 +08:00   ❤️ 1
    需要设置 referer 吧,话说我爬过一遍这个词库
    ipeony
        4
    ipeony  
       2016-01-13 19:34:23 +08:00   ❤️ 1
    初学 python~简单暴力可以的
    kchum
        5
    kchum  
       2016-01-13 19:47:07 +08:00 via iPhone   ❤️ 1
    @yangyaofei 不只是 UA ,楼下说了,说不好还要 cookies
    yangyaofei
        6
    yangyaofei  
    OP
       2016-01-13 20:23:44 +08:00
    @kchum
    @ipeony
    @fractal314
    谢谢谢谢~~滚去写试试了~
    原来 header 上这么多东西啊~~
    yangyaofei
        7
    yangyaofei  
    OP
       2016-01-13 20:48:48 +08:00
    @kchum
    @ipeony
    @fractal314
    成功了!最后实验了一下,只要有 referer 就好了~~~谢谢谢谢谢~~
    kchum
        8
    kchum  
       2016-01-13 21:25:17 +08:00 via iPhone
    @yangyaofei 楼主爬完可以分享下吗?差点忘了之前想重新弄鼠须管的词库,别人的太大,导入太卡,将就用
    yangyaofei
        9
    yangyaofei  
    OP
       2016-01-13 21:50:54 +08:00
    @kchum
    <script src="https://gist.github.com/yangyaofei/69137c0ed4dc65900808.js"></script>
    好了好了~~但是有点小毛病~~加了个异常,不知道对不对~~
    yangyaofei
        10
    yangyaofei  
    OP
       2016-01-13 21:52:16 +08:00
    @kchum
    尿了~~~犯了个小错误~~~已改~~~
    tkMerkava
        11
    tkMerkava  
       2016-01-13 23:08:51 +08:00
    恕我 python 小白,在本地运行楼主的代码还是会报错, line 32 except IOError, e: 这里
    望指教
    em70
        12
    em70  
       2016-01-14 00:05:34 +08:00 via iPhone
    先抓包分析,看看正常请求需要什么头
    yangyaofei
        13
    yangyaofei  
    OP
       2016-01-14 09:02:57 +08:00 via Android
    @tkMerkava 我的没报错,我用的 python2
    tkMerkava
        14
    tkMerkava  
       2016-01-14 09:23:09 +08:00
    @yangyaofei 好吧。。我换 python2 试试
    lszxlong
        15
    lszxlong  
       2017-04-26 11:13:43 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1061 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:05 · PVG 03:05 · LAX 12:05 · JFK 15:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.