【发布时间】:2021-06-12 01:56:25
【问题描述】:
大家好,我的方案无效,这段代码有很多错误
我只是想从给定的 url 制作一个简单的 instagram 图片下载器 这是代码
import requests
from bs4 import BeautifulSoup
def get_response(url):
r = requests.get(url)
while not r.ok:
return r.status_code
return r.text
url = input('Enter Instagram URL: ')
response = get_response(url)
soup = BeautifulSoup(response,"lxml")
image = soup.find("meta", property="og:image")
image = str(image)
image = image.replace("amp;","")
print(image) ### Here is working fine when you click printed link it works
r = requests.get(image) ### Problem is at here
with open('cat3.jpg', 'wb') as f:
f.write(r.content)
# https://www.instagram.com/p/CL1TxMRlhe7/ #sample cat image
此处列出的错误
Traceback (most recent call last):
File "D:\Python öğreniyorum\ana_dosya.py", line 20, in <module>
r = requests.get(image) ### Problem is at here
File "C:\Users\Pc\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "C:\Users\Pc\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Pc\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Pc\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 649, in send
adapter = self.get_adapter(url=request.url)
File "C:\Users\Pc\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 742, in get_adapter
raise InvalidSchema("No connection adapters were found for {!r}".format(url))
requests.exceptions.InvalidSchema: No connection adapters were found for '<meta content="https://instagram.fsaw3-1.fna.fbcdn.net/v/t51.2885-15/e35/s1080x1080/155344637_426370308591690_7809000723152066300_n.jpg?tp=1&_nc_ht=instagram.fsaw3-1.fna.fbcdn.net&_nc_cat=106&_nc_ohc=sP6bYsFdL_0AX8yIuXZ&oh=a7e381762b429e6c7b3b494b510ca166&oe=60790CBF" property="og:image"/>'
【问题讨论】:
-
如错误消息的最后一行所示,您正尝试向无效的 URL 发送请求。它是无效的,因为它包含 HTML 标记
meta。您必须获取 HTML 代码的content属性中的 URL。 -
谢谢我解决了 :) 我做了一个快速修复,比如 image = image[15:-23] 并获得了纯 url 链接,它工作了,我稍后会用 re sub 来做 :) 谢谢跨度>
-
我已经为您的问题发布了一个比您提出的更可靠的正确答案。如果有效,请点击复选标记。
标签: python beautifulsoup python-requests urllib