【发布时间】:2011-01-02 16:37:42
【问题描述】:
如何让 python 获取 HTTP 页面的内容?到目前为止,我只有请求,并且已经导入了 http.client。
【问题讨论】:
标签: python http python-3.x
如何让 python 获取 HTTP 页面的内容?到目前为止,我只有请求,并且已经导入了 http.client。
【问题讨论】:
标签: python http python-3.x
使用urllib.request 可能是最简单的方法:
import urllib.request
f = urllib.request.urlopen("http://stackoverflow.com")
print(f.read())
【讨论】:
urllib2 模块已纳入 Python 3.x urllib 模块集:docs.python.org/library/urllib2.html
使用内置模块“http.client”
import http.client
connection = http.client.HTTPSConnection("api.bitbucket.org", timeout=2)
connection.request('GET', '/2.0/repositories')
response = connection.getresponse()
print('{} {} - a response on a GET request by using "http.client"'.format(response.status, response.reason))
content = response.read().decode('utf-8')
print(content[:100], '...')
结果:
200 OK - 使用“http.client”响应 GET 请求 {“pagelen”:10,“值”:[{“scm”:“hg”,“网站”:“”,“has_wiki”: true, "name": "tweakmsg", "links ...
使用第三方库“请求”
response = requests.get("https://api.bitbucket.org/2.0/repositories")
print('{} {} - a response on a GET request by using "requests"'.format(response.status_code, response.reason))
content = response.content.decode('utf-8')
print(content[:100], '...')
结果:
200 OK - 使用“请求”响应 GET 请求 {“pagelen”:10,“值”:[{“scm”:“hg”,“网站”:“”,“has_wiki”: true, "name": "tweakmsg", "links ...
使用内置模块“urllib.request”
response = urllib.request.urlopen("https://api.bitbucket.org/2.0/repositories")
print('{} {} - a response on a GET request by using "urllib.request"'.format(response.status, response.reason))
content = response.read().decode('utf-8')
print(content[:100], '...')
结果:
200 OK - 使用“urllib.request”响应 GET 请求 {“pagelen”:10,“值”:[{“scm”:“hg”,“网站”:“”,“has_wiki”: true, "name": "tweakmsg", "links ...
注意事项:
【讨论】:
您还可以使用请求库。我发现这特别有用,因为它更容易检索和显示 HTTP 标头。
import requests
source = 'http://www.pythonlearn.com/code/intro-short.txt'
r = requests.get(source)
print('Display actual page\n')
for line in r:
print (line.strip())
print('\nDisplay all headers\n')
print(r.headers)
【讨论】:
pip 安装请求
import requests
r = requests.get('https://api.spotify.com/v1/search?type=artist&q=beyonce')
r.json()
【讨论】:
添加此代码可以格式化数据以供人类阅读:
text = f.read().decode('utf-8')
【讨论】:
https://stackoverflow.com/a/41862742/8501970 而是检查一下。它与您遇到的问题大致相同,而且这个问题非常简单,代码行数很少。 当我意识到 python3 不能简单地使用 get_page 时,这肯定对我有所帮助。
这是一个不错的选择。 (希望这会有所帮助,干杯!)
【讨论】: