BeautifulSoup4 .replace «Ошибка типа: объект NoneType не вызывается» (для начинающих) - PullRequest
0 голосов
/ 31 января 2019

Я получаю ошибку, которая говорит TypeError: 'NoneType' object is not callable

Я считаю, что переменная сфера является строкой, если напечатано - выводит строку информации, которая содержит <a href="http://www.google.com/searchbyimage?image_url=https://website/image.png/"><i class="icon-camera"></i><strong>find similar</strong></a>, но .replace() получает None значение (я думаю)

Если sphere задано значение строки, оно отлично работает

import requests
import time
from bs4 import BeautifulSoup
url = 'https://example.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
page = requests.get(url, headers=headers)
contents = page.content
soup = BeautifulSoup(contents, 'html.parser')


link = soup.find_all('a')
print (link[34]) # prints a line that I need
sphere = link[34]

sphere.replace('<a href=http://www.google.lt/searchbyimage?image_url=', '') # error here

1 Ответ

0 голосов
/ 31 января 2019

В этом случае, хотя может показаться, что sphere - строка, если мы проверим type(sphere), мы увидим, что это bs4.element.Tag.Самое простое решение - сначала просто привести его как строку:

sphere = str(link[34])
sphere.replace('<a href=http://www.google.lt/searchbyimage?image_url=', '') # error here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...