Python: просит URL не принимать функции? - PullRequest
0 голосов
/ 05 июня 2019

При работе с библиотекой запросов для Python и вводом URL-адреса через функцию я получаю эту ошибку:

Некоторые символы не могут быть декодированы и заменены на REPLACEMENT CHARACTER.

Я импортировал функцию из другого файла в файл с моим кодом.Возвращает строку URL и импортируется для использования в функции requests.get().Я уже пробовал возиться с функцией, убедился, что она импортируется (без орфографических ошибок и т. Д.).

#page_scrapper.py
import requests
import bs4
from classes import image_logic # This is where I import the function from my other file.

result = requests.get(image_logic()) # For some reason this is what's causing all the issues, it won't work with a function, only with a url, period.
c = result.content
soup = BeautifulSoup(c, 'html.parser')
#classes.py
import requests
import bs4

def image_logic():
    return "URL string here, obviously this won't be the actual string I have sitting here"

Я ожидаю, что result=requests.get(image_logic()) вызовет функцию и будет использовать возвращенныйзначение в виде строки, но он продолжает выдавать ту же ошибку.Печать URL-адреса на консоль через page_scrapper.py работает, как и ожидалось.

Будут благодарны за любые другие советы.

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Я нашел ответ. Судя по всему, я пытался почистить чистый файл jpg на сайте, который не содержал никакого другого HTML-кода по ссылке. Проблема была решена, когда я загрузил нужную страницу в image_logic ().

Все сводилось к тому, что я перепутал мои ссылки, и эти два выглядели так близко, что я упустил самое простое решение.

0 голосов
/ 05 июня 2019

Некоторые символы не могли быть декодированы и были заменены символом ЗАМЕНЫ.

Скорее всего, это происходит потому, что вы принимаете веб-страницу в виде байтов, используя result.content, и вы должны декодировать ее соответствующим образом, попробуйте вместо этого просто использовать result.text, если вы не хотите декодировать веб-страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...