如何向下载的 html 文件发送请求
How to send requests to a downloaded html file
我下载了一个 .html 文件,想向该文件发送请求以获取其内容。
但是,如果我执行以下操作:
import requests
html_file = "/user/some_html.html"
r = requests.get(html_file)
出现以下错误:
Invalid URL 'some_html.html': No schema supplied.
如果我添加架构,我会收到以下错误:
HTTPConnectionPool(host='some_html.html', port=80): Max retries exceeded with url:
我想知道如何在下载文件时专门向 html 文件发送请求。
您正在从本地目录访问 html 文件。 get()
方法使用 HTTPConnection
和端口 80 从网站而不是本地目录访问数据。要使用 get()
方法从本地目录访问文件,请使用 Xampp 或 Wampp。
要从本地目录访问文件,您可以使用 open()
,而 requests.get()
用于从 Port 80
访问文件,使用简单的 http 连接来自互联网而不是本地目录
import requests
html_file = "/user/some_html.html"
t=open(html_file, "r")
for v in t.readlines():
print(v)
输出:
您不会“向 html 文件发送请求”。相反,您可以向 Internet 上的 HTTP 服务器发送请求,该服务器将 return 包含 html 文件内容的响应。
文件本身对“请求”一无所知。如果您将文件存储在本地并想对其执行某些操作,则可以像打开任何其他文件一样打开它。
如果您有兴趣了解有关请求和响应模型的更多信息,我建议您尝试类似
response = requests.get("http://whosebug.com")
您还应该阅读有关 HTTP 以及请求和响应的内容,以更好地理解其工作原理。
您可以通过为您的 html 文件设置一个 本地服务器 来实现。
如果您使用 Ritwick Dey 的 Visual Studio Code, you can install Live Server。
然后你做如下:
1 - 发出第一个请求并将 html 内容保存到 .html 文件中:
my_req.py
import requests
file_path = './'
file_name = 'my_file'
url = "https://www.qwant.com/"
response = requests.request("GET", url)
w = open(file_path + file_name + '.html', 'w')
w.write(response.text)
2 - 在 Visual Studio Code 上安装了 Live Server,点击 my_file.html,然后点击 Go Live.
和
3 - 现在您可以向您的本地 http 架构发出请求:
第二次请求
import requests
url = "http://127.0.0.1:5500/my_file.html"
response = requests.request("GET", url)
print(response.text)
还有,查兰!!做你需要做的事。
在爬虫工作中,我遇到过一种情况,即网站上显示的内容与使用 response.text 检索到的内容存在差异,因此 xpath与网站上的不一样,所以我需要下载内容,制作本地 html 文件,并获取新的 xpaths 以获取我需要的信息。
我下载了一个 .html 文件,想向该文件发送请求以获取其内容。
但是,如果我执行以下操作:
import requests
html_file = "/user/some_html.html"
r = requests.get(html_file)
出现以下错误:
Invalid URL 'some_html.html': No schema supplied.
如果我添加架构,我会收到以下错误:
HTTPConnectionPool(host='some_html.html', port=80): Max retries exceeded with url:
我想知道如何在下载文件时专门向 html 文件发送请求。
您正在从本地目录访问 html 文件。 get()
方法使用 HTTPConnection
和端口 80 从网站而不是本地目录访问数据。要使用 get()
方法从本地目录访问文件,请使用 Xampp 或 Wampp。
要从本地目录访问文件,您可以使用 open()
,而 requests.get()
用于从 Port 80
访问文件,使用简单的 http 连接来自互联网而不是本地目录
import requests
html_file = "/user/some_html.html"
t=open(html_file, "r")
for v in t.readlines():
print(v)
输出:
您不会“向 html 文件发送请求”。相反,您可以向 Internet 上的 HTTP 服务器发送请求,该服务器将 return 包含 html 文件内容的响应。
文件本身对“请求”一无所知。如果您将文件存储在本地并想对其执行某些操作,则可以像打开任何其他文件一样打开它。
如果您有兴趣了解有关请求和响应模型的更多信息,我建议您尝试类似
response = requests.get("http://whosebug.com")
您还应该阅读有关 HTTP 以及请求和响应的内容,以更好地理解其工作原理。
您可以通过为您的 html 文件设置一个 本地服务器 来实现。 如果您使用 Ritwick Dey 的 Visual Studio Code, you can install Live Server。
然后你做如下:
1 - 发出第一个请求并将 html 内容保存到 .html 文件中:
my_req.py
import requests
file_path = './'
file_name = 'my_file'
url = "https://www.qwant.com/"
response = requests.request("GET", url)
w = open(file_path + file_name + '.html', 'w')
w.write(response.text)
2 - 在 Visual Studio Code 上安装了 Live Server,点击 my_file.html,然后点击 Go Live.
和
3 - 现在您可以向您的本地 http 架构发出请求:
第二次请求
import requests
url = "http://127.0.0.1:5500/my_file.html"
response = requests.request("GET", url)
print(response.text)
还有,查兰!!做你需要做的事。
在爬虫工作中,我遇到过一种情况,即网站上显示的内容与使用 response.text 检索到的内容存在差异,因此 xpath与网站上的不一样,所以我需要下载内容,制作本地 html 文件,并获取新的 xpaths 以获取我需要的信息。