我想从python程序访问一个网页.我必须设置cookie才能加载页面.
我使用了httplib2库,但我没有找到如何添加自己的cookie
resp_headers, content = h.request("http://www.theURL.com", "GET")
Run Code Online (Sandbox Code Playgroud)
如何创建具有正确名称和值的cookie,将其添加到函数中然后加载页面?
谢谢
我正在向httplib2拥有的REST服务发出HTTPS GET请求,但是我们收到错误:
[Errno 8] _ssl.c:504: EOF occurred in violation of protocol
Run Code Online (Sandbox Code Playgroud)
所有其他客户端运行良好(浏览器,Java客户端等...),但需要将PHP curl设置为使用SSL v3.
我已经四处搜索,似乎确实是关于SSL版本的错误,但我似乎找不到在httplib2中更改它的方法.除了更改源代码中的以下行之外,还有什么办法吗?
# We should be specifying SSL version 3 or TLS v1, but the ssl module
# doesn't expose the necessary knobs. So we need to go with the default
# of SSLv23.
return ssl.wrap_socket(sock, keyfile=key_file, certfile=cert_file,
cert_reqs=cert_reqs, ca_certs=ca_certs)
Run Code Online (Sandbox Code Playgroud) 使用Python下载网页时如何利用HTTP 1.1的压缩?
我目前正在使用内置的urllib模块下载Web内容.阅读文档,我找不到任何确实使用压缩的信息.
它已经内置到urllib中了还是我可以使用另一个库?
我该如何解决?
PS:在谷歌搜索,我发现这是一些httplib2错误,但我不明白如何使用人们提供的补丁.
Traceback (most recent call last):
File "alt_func.py", line 18, in <module>
func(code)
File "alt_func.py", line 9, in func
resp, content = h.request(url_string, "GET", headers={'Referer': referer})
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 1099, in request
(response, new_content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 901, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/usr/lib/pymodules/python2.6/httplib2/__init__.py", line 871, in _conn_request
response = conn.getresponse()
File "/usr/lib/python2.6/httplib.py", line 984, in getresponse
method=self._method)
File "/usr/lib/python2.6/httplib.py", line 330, in …Run Code Online (Sandbox Code Playgroud) 我正在尝试为Python安装httplib2库,因此我可以使用它与Twitter进行交互,但当我尝试通过'python setup.py install'安装时,我在控制台中收到以下错误.
这是一个新的MBA,我是唯一的用户(和管理员)所以我不应该这么粗鲁地被拒绝!
error: could not create '/Library/Python/2.7/site-packages/httplib2': Permission denied
Run Code Online (Sandbox Code Playgroud)
思考?
我正在尝试使用Google 在此处描述的刷新令牌来获取新的访问令牌.Google说我需要发出HTTP请求.我不知道怎么做,所以我从这里查看了如何做到这一点.但是,我必须正确地发布帖子,因为我收到invalid_request错误.
以下是我的相关代码:
h = Http()
post_data = {'POST': '/o/oauth2/token HTTP/1.1',
'HOST:': 'accounts.google.com',
'Content-Type:': 'application/x-www-form-urlencoded',
'client_id':ClientID,
'client_secret':ClientSecret,
'refresh_token':SavedRefreshToken,
'grant_type':'refresh_token'}
resp, content = h.request("https://accounts.google.com/o/oauth2/token",
"POST",
urlencode(post_data))
Run Code Online (Sandbox Code Playgroud)
我得到的回应是:
{
"error" : "invalid_request"
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
这似乎是一项简单的任务,我不确定我是否已经完成它,或者我是否正在追逐我的尾巴.
values = [value.replace('-','') for value in values] ## strips out hyphen (only 1)
print values ## outputs ['0160840020']
parcelID = str(values) ## convert to string
print parcelID ##outputs ['0160840020']
url = 'Detail.aspx?RE='+ parcelID ## outputs Detail.aspx?RE=['0160840020']
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试附加到URL末尾的数字,以便通过POST参数更改页面.我的问题是如何删除['前缀和']后缀?我已经尝试了parcelID.strip("['")没有运气.我这样做了吗?
第2行(h = httplib2.Http('.cache'))的含义是什么?
>>> import httplib2
>>> h = httplib2.Http('.cache')
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用httplib2发出http请求:
import httplib2, time, re, urllib`
conn = httplib2.Http(".cache")
page = conn.request(u"http://www.mydomain.com/search?q=cars#p=100","GET")
Run Code Online (Sandbox Code Playgroud)
响应没问题,但"#p = 100"没有被传递过来.有谁知道如何通过httplib2传递这个?
谢谢
OS: Mac OSx 10.8.3
IDE: Eclipse w/ PyDev
Run Code Online (Sandbox Code Playgroud)
如何在Mac上正确安装httplib2?它可以通过下面发布的命令在Ubuntu,Debian,Gentoo和FreeBSD上完成,除了Mac OS.
显然这个命令可以工作但我的终端说它找不到setup.py.
$ python setup.py install
Run Code Online (Sandbox Code Playgroud) 我想知道 httplib2.Http 类的 request 方法采用什么参数。我正在尝试使用一个简单的 get 方法,但似乎我使用的 url 提供了一个需要验证的证书,因为我收到 SSL3_GET_SERVER_CERTIFICATE 错误。这就是为什么我想知道使用 httplib2 库我们是否可以告诉我们的请求忽略证书验证(如urllib.request 的不可验证参数)。这是我的代码:
import httplib2
h = httplib2.Http(".cache")
h.credentials_add(username, password)
resp, content = h.request(url, "GET")
Run Code Online (Sandbox Code Playgroud) 我尝试过使用请求:
url = 'http://bot' # this is a local service
import requests
r = requests.get(url)
Run Code Online (Sandbox Code Playgroud)
我得到
requests.exceptions.SSLError:HTTPSConnectionPool(主机='bot',端口=443)
我指定了 HTTP,而不是 HTTPS,但它尝试使用 SSL 进行连接。
所以,我尝试了httplib2:
url = 'http://bot' # this is a local service
response, content = http.request(url, "GET")
Run Code Online (Sandbox Code Playgroud)
我得到:
ssl.SSLCertVerificationError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:无法获取本地颁发者证书(_ssl.c:1076)
我不知道为什么有人对 HTTPS 如此痴迷,但我不想要它。它是一个正在开发中运行的本地服务,并且是纯 HTTP。在 url 中添加“:80”不会改变任何内容。
当使用CURL或C#访问同一个服务时,通过HTTP,没有问题。
我如何告诉 python 库我想要一个纯 HTTP 连接而不是其他?
httplib2 ×12
python ×12
compression ×1
cookies ×1
gzip ×1
http ×1
http-post ×1
install ×1
macos ×1
parameters ×1
pydev ×1
python-2.x ×1
python-3.x ×1
ssl ×1
string ×1
terminal ×1