Python 3获取HTTP页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 3获取HTTP页面相关的知识,希望对你有一定的参考价值。

如何让python获取HTTP页面的内容?到目前为止,我所有的是请求,我已经导入了http.client。

答案

使用urllib.request可能是最简单的方法:

import urllib.request
f = urllib.request.urlopen("http://stackoverflow.com")
print(f.read())
另一答案

用法内置模块“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”{“pagelen”:10,“values”:[{“scm”:“hg”,“website”:“”,“has_wiki”:true,对GET请求的响应) “name”:“tweakmsg”,“链接......

用法第三方库“请求”

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 - 使用“http.client”{“pagelen”:10,“values”:[{“scm”:“hg”,“website”:“”,“has_wiki”:true,对GET请求的响应) “name”:“tweakmsg”,“链接......

用法内置模块“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 - 使用“http.client”{“pagelen”:10,“values”:[{“scm”:“hg”,“website”:“”,“has_wiki”:true,对GET请求的响应) “name”:“tweakmsg”,“链接......

笔记:

  1. Python 3.4
  2. 响应的结果很可能只是内容不同
另一答案

您还可以使用请求库。我发现这特别有用,因为它更容易检索和显示HTTP标头。

import requests

source = 'http://www.pythonlearn.com/code/intro-short.txt'

r = requests.get(source)

print('Display actual page
')
for line in r:
    print (line.strip())

print('
Display all headers
')
print(r.headers)
另一答案

添加此代码可以格式化人类阅读数据:

text = f.read().decode('utf-8')
另一答案

https://stackoverflow.com/a/41862742/8501970检查出来。它与你有同样的问题,而且这个问题非常简单,代码很少。当我意识到python3不能简单地使用get_page时,这确实帮助了我。

这是一个很好的选择。 (希望这会有所帮助,欢呼!)

另一答案

pip安装请求

import requests

r = requests.get('https://api.spotify.com/v1/search?type=artist&q=beyonce')
r.json()

以上是关于Python 3获取HTTP页面的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

python—爬虫

python—爬虫

c#如何采集需要登录的页面

小程序各种功能代码片段整理---持续更新