推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Adia
V2EX  ›  Python

请教一个关于 url 的问题

  •  1
     
  •   Adia · Feb 26, 2017 · 2638 views
    This topic created in 3433 days ago, the information mentioned may be changed or developed.
    大概的场景就是客户端那边给了一个 url ,到了 python 这边,要去调用 linux 的 shell ,做些 curl URL 和 wget URL 的操作。但是有些 URL 里面带了括号或者一些奇怪的东西。需要转义。感觉用正则太麻烦, 请问各位大佬有什么好办法吗?
    17 replies    2017-02-27 11:13:00 +08:00
    zjuhwc
        1
    zjuhwc  
       Feb 26, 2017 via iPhone
    只需要 curl 和 wget 的功能的话,几乎都可以用 requests 这个包来实现吧
    Adia
        2
    Adia  
    OP
       Feb 26, 2017
    @zjuhwc 项目里基本都是这么写的..要重构很麻烦
    Adia
        3
    Adia  
    OP
       Feb 26, 2017
    zjuhwc
        4
    zjuhwc  
       Feb 26, 2017 via iPhone
    哦,那转义为啥需要正则?
    alcarl
        5
    alcarl  
       Feb 26, 2017 via Android   ❤️ 1
    不是应该做好 urlencode 然后再调用 shell 的么?(ಠ .̫.̫ ಠ)
    Adia
        6
    Adia  
    OP
       Feb 26, 2017
    @zjuhwc 用双引号包起来,如果 url 有"就麻烦了。\就要看哪些需要了,得用正则
    zjuhwc
        7
    zjuhwc  
       Feb 26, 2017 via iPhone
    这个是转义,不是正则啊……你可以用三个引号的字符串来写命令,就不用担心双引号问题了
    Adia
        8
    Adia  
    OP
       Feb 26, 2017
    @alcarl 感谢
    Adia
        9
    Adia  
    OP
       Feb 26, 2017
    @alcarl 不过这样 curl 就没法用了..
    @zjuhwc 不过这样 curl 就没法用了..
    liyu4
        10
    liyu4  
       Feb 26, 2017 via iPhone
    多了\
    alcarl
        11
    alcarl  
       Feb 26, 2017 via Android   ❤️ 1
    @Adia 为啥没法用了? curl 空格跟上编码好的 url 不可以么?
    Adia
        12
    Adia  
    OP
       Feb 26, 2017
    @alcarl 是的
    @liyu4 什么?
    loading
        13
    loading  
       Feb 26, 2017 via Android
    不给例子吗?
    不过问题我看应该解决了,你应该是不了解 urlencode 的事。
    akira
        14
    akira  
       Feb 26, 2017
    urlencode 两次,或者改成用类似 base64 编码处理一下
    Adia
        15
    Adia  
    OP
       Feb 26, 2017
    @loading 已解决,感谢。
    @akira 两次怎么行..我一位朋友也和我讲过 Base64 ,不过好像不成啊。能给个 demo 吗
    @alcarl 已解决,感谢
    binux
        16
    binux  
       Feb 26, 2017
    python 调用 shell 为什么要转移?直接传参数列表过去不就好了
    stranbird
        17
    stranbird  
       Feb 27, 2017
    重构还是值得的,毕竟现在你们已经遇到继续往下开发的瓶颈了。
    具体做的时候可以用 https://curl.trillworks.com/来把 curl 命令自动转化成 request 的代码。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1692 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 16:20 · PVG 00:20 · LAX 09:20 · JFK 12:20
    ♥ Do have faith in what you're doing.