Найти - Пользователи
Полная версия: Сохранил страницу html. Пытаюсь получить с неё ссылки.
Начало » Python для новичков » Сохранил страницу html. Пытаюсь получить с неё ссылки.
1
satfan
Уважаемые подскажите.
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'
xam1816

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

xam1816

satfan
Ошибок нет, но ничего не вижу.
Что не так ?
Вот в этом вся проблема!Вы не видите и не понимаете то, что вы просите от машины.Когда вы поймете,что выполняет каждая строка вашего кода,тогда и проблема решится сама собой.А чтобы понять вам нужно вернуться в самое начало
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB