Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2021 09:35:59

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.

Уважаемые подскажите.
IDLE (Python 3.8 32-bit) Win 7
—————–
Сохранил страницу html. Пытаюсь получить с неё ссылки, нужны только ссылки с включением одного слова.
Своим скриптом получаю только часть ссылок. Которые нужна - нет.
Вод код скрипта:

 from bs4 import BeautifulSoup 
links = [] 
# получаем ссылки из файла 
with open('index.html', 'r', encoding='utf-8') as f: 
data = f.read() 
soup = BeautifulSoup(data, "html.parser") 
links = soup.find_all('a') 
# выводим их в консоль 
for link in links: 
print(link['href']) 
# записываем в файл file.txt 
with open('file.txt', 'w', encoding='utf-8') as f: 
for link in links: 
f.write(link['href'] + '\n') 
А в конце выдачи ошибка:
 Traceback (most recent call last): 
File "C:\Users\Александр\Desktop\6\1.py", line 12, in <module> 
print(link['href']) 
File "C:\Python38-32\lib\site-packages\bs4\element.py", line 1406, in __getitem__ 
return self.attrs[key] 
KeyError: 'href'

Офлайн

#2 Янв. 21, 2021 12:07:39

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  121  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.


satfan
Пытаюсь получить с неё ссылки, нужны только ссылки с включением одного слова.
 links = soup.find_all('a')
print(links)# выложите в сообщении что показывает

Офлайн

#3 Янв. 21, 2021 12:42:57

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.

Уважаемый спасибо.
Ввожу Ваш код:

 # coding: utf8
from bs4 import BeautifulSoup
def main():
    file = open('index.html', mode='rb')
    data = file.read()
    links = soup.find_all('a')
    print(links)
Ошибок нет, но ничего не вижу.
Что не так ?

Офлайн

#4 Янв. 21, 2021 14:49:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.

satfan
а функцию вы не забыли вызвать?



Офлайн

#5 Янв. 21, 2021 15:01:36

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.

Опять ошибка:

 Traceback (most recent call last):
  File "C:\Users\Александр\Desktop\6\main.py", line 12, in <module>
    main()
  File "C:\Users\Александр\Desktop\6\main.py", line 8, in main
    links = soup.find_all('a')
NameError: name 'soup' is not defined

Офлайн

#6 Янв. 21, 2021 17:02:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.

satfan
Вы методом тыка программируте?
Ну у вас же в вашем собственном стартовом посте

 soup = BeautifulSoup(data, "html.parser") 

Через три часа вы потеряли эту строку
 from bs4 import BeautifulSoup
def main():
    file = open('index.html', mode='rb')
    data = file.read()
    links = soup.find_all('a')
    print(links)

и что, сообщение об ошибке вам ничего не говорит? Вы не догадались посмотреть в собственноручно написанную программу и поискать, что же такое ‘soup’? Или для вас все что вы делаете, это просто набор букв, не имеющий смысла? Прекращайте насколько отчаянно тупить!



Офлайн

#7 Янв. 21, 2021 17:03:34

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  121  -
Профиль   Отправить e-mail  

Сохранил страницу html. Пытаюсь получить с неё ссылки.


satfan
Ошибок нет, но ничего не вижу.
Что не так ?
Вот в этом вся проблема!Вы не видите и не понимаете то, что вы просите от машины.Когда вы поймете,что выполняет каждая строка вашего кода,тогда и проблема решится сама собой.А чтобы понять вам нужно вернуться в самое начало

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version