Тип объекта не подписывается BeatifulSoup - PullRequest
0 голосов
/ 31 января 2020
from bs4 import BeautifulSoup as bs

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
}
url = 'http://www.sahibinden.com/coklu-calisma-masasi'
r = requests.get(url, headers=headers)
soup = bs(r.content, "html.parser")


Liste = list["bla","bla"]



for i in range(10):
    liste[i] = soup.find("a", {"class":"classifiedTitle"})


print(Liste)

Я запускаю этот код и получаю эту ошибку https://prnt.sc/qvifx8 Что я могу сделать для этой ошибки

Ответы [ 2 ]

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

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

Liste = list["bla","bla"]

Вы должны определить это так:

Liste = ["bla","bla"]

Однако, ниже вы переписываете элементы. Итак, предполагая, что вы хотите взять только первые 10 элементов (на основе вашего for i in range(10)), которые соответствуют условиям ("a", {"class":"classifiedTitle"}), вы должны сделать это:

Liste = soup.find_all("a", {"class":"classifiedTitle"})[:10]
0 голосов
/ 31 января 2020
list["bla","bla"]

Не является допустимым объявлением списка. Вы использовали квадратные скобки, которые в Python обозначают подписку. Следовательно, ваша ошибка: list является типом и не является подписной.

Попробуйте вместо этого

list("bla","bla")

Или более стандартное объявление списка:

["bla","bla"]

В другой заметке, когда вы даете объекту общее c имя в python, попробуйте придумать что-нибудь описательное для имени, например word_list, а не имя "в ближайшем промахе", например liste. Или, если это действительно старый список, который не заслуживает какой-либо спецификации, то обычно используется имя типа l. Но что бы вы ни выбрали, имена переменных должны быть lower_case

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