我想找到关于使用curl的网页的信息,但在Python中,到目前为止我有这个:
os.system("curl --head www.google.com")
Run Code Online (Sandbox Code Playgroud)
如果我运行它,它会打印出来:
HTTP/1.1 200 OK
Date: Sun, 15 Apr 2012 00:50:13 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=3e39ad65c9fa03f3:FF=0:TM=1334451013:LM=1334451013:S=IyFnmKZh0Ck4xfJ4; expires=Tue, 15-Apr-2014 00:50:13 GMT; path=/; domain=.google.com
Set-Cookie: NID=58=Giz8e5-6p4cDNmx9j9QLwCbqhRksc907LDDO6WYeeV-hRbugTLTLvyjswf6Vk1xd6FPAGi8VOPaJVXm14TBm-0Seu1_331zS6gPHfFp4u4rRkXtSR9Un0hg-smEqByZO; expires=Mon, 15-Oct-2012 00:50:13 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Run Code Online (Sandbox Code Playgroud)
我想要做的是,能够使用正则表达式匹配其中的200(我不需要帮助),但是,我找不到将上述所有文本转换为字符串的方法.我怎么做?我试过了,info = os.system("curl --head www.google.com")
但info
只是0
.
Ósc*_*pez 22
试试这个,使用subprocess.Popen()
:
import subprocess
proc = subprocess.Popen(["curl", "--head", "www.google.com"], stdout=subprocess.PIPE)
(out, err) = proc.communicate()
print out
Run Code Online (Sandbox Code Playgroud)
如文档中所述:
子进程模块允许您生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回代码.该模块旨在替换其他几个较旧的模块和功能,例如:
os.system
os.spawn*
os.popen*
popen2.*
commands.*
Run Code Online (Sandbox Code Playgroud)
Raú*_*tín 17
出于某种原因...我需要使用curl(没有pycurl,httplib2 ...),也许这可以帮助某人:
import os
result = os.popen("curl http://google.es").read()
print result
Run Code Online (Sandbox Code Playgroud)
import os\ncmd = 'curl https://randomuser.me/api/'\nos.system(cmd)\n
Run Code Online (Sandbox Code Playgroud)\n{"results":[{"gender":"male","name":{"title":"mr","first":"\xc3\xa7etin","last":"nebio\xc4\x9flu"},"location":{"street":"5919 abanoz sk","city":"adana","state":"kayseri","postcode":53537},"email":"\xc3\xa7etin.nebio\xc4\x9flu@example.com","login":{"username":"heavyleopard188","password":"forgot","salt":"91TJOXWX","md5":"2b1124732ed2716af7d87ff3b140d178","sha1":"cb13fddef0e2ce14fa08a1731b66f5a603e32abe","sha256":"cbc252db886cc20e13f1fe000af1762be9f05e4f6372c289f993b89f1013a68c"},"dob":"1977-05-10 18:26:56","registered":"2009-09-08 15:57:32","phone":"(518)-816-4122","cell":"(605)-165-1900","id":{"name":"","value":null},"picture":{"large":"https://randomuser.me/api/portraits/men/38.jpg","medium":"https://randomuser.me/api/portraits/med/men/38.jpg","thumbnail":"https://randomuser.me/api/portraits/thumb/men/38.jpg"},"nat":"TR"}],"info":{"seed":"0b38b702ef718e83","results":1,"page":1,"version":"1.1"}}\n
Run Code Online (Sandbox Code Playgroud)\n
尝试这个:
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
Run Code Online (Sandbox Code Playgroud)