Форум сайта python.su
Уважаемые подскажите.
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'
Офлайн
satfan
Пытаюсь получить с неё ссылки, нужны только ссылки с включением одного слова.
links = soup.find_all('a') print(links)# выложите в сообщении что показывает
Офлайн
Уважаемый спасибо.
Ввожу Ваш код:
# coding: utf8 from bs4 import BeautifulSoup def main(): file = open('index.html', mode='rb') data = file.read() links = soup.find_all('a') print(links)
Офлайн
satfan
а функцию вы не забыли вызвать?
Офлайн
Опять ошибка:
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
Офлайн
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)
Офлайн
satfanВот в этом вся проблема!Вы не видите и не понимаете то, что вы просите от машины.Когда вы поймете,что выполняет каждая строка вашего кода,тогда и проблема решится сама собой.А чтобы понять вам нужно вернуться в самое начало
Ошибок нет, но ничего не вижу.
Что не так ?
Офлайн