Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2022, 00:40   #1
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию BeautifulSoup, поиск ссылок с текстом на русском

Вопрос по BeautifulSoup
Код:
find_all('a', class_='page_doc_title')
Этим кодом нахожу все ссылки с классом page_doc_title. Как далее приделать к этому выражению регулярное выражение например, чтобы были отобраны ссылки, в тексте которых (который отображается на вебстранице) есть текст на русском языке (не обязательно полностью на русском, например можно отобрать, если встречаются русские гласные буквы).
gimes вне форума Ответить с цитированием
Старый 17.12.2022, 06:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Попробуйте (не запускал):
Код:
find_all('a', class_ = 'page_doc_title', string = re.compile("[аяуюоёеэиыАЯУЮОЁЕЭИЫ]"))
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 17.12.2022, 12:09   #3
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Да, работает. Благодарю.
gimes вне форума Ответить с цитированием
Старый 17.12.2022, 18:12   #4
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Подскажите пожалуйста, как записать в файл ссылку и то, что находится перед закрывающим тегом </a>, то есть текст, отображаемый на веб странице в файл, на одной строке, разделяя со следующим результатом (ссылка и текст) переносом строки.
Как вариант можно вместо этого записывать на каждой новой строке то, что находится между тегами <a></a> вместе с этими тегами.
Начал делать заготовку кода. Не пойму, как доделать.
Код:
def main():
    html = open('page.html', encoding='utf-8').read()
    soup = BeautifulSoup(html, 'lxml')
    with open("links_rus.txt", "w", encoding="utf8") as f:
        for link in soup.find_all('a', class_ = 'page_doc_title', string = re.compile("[аяуюоёеэиыАЯУЮОЁЕЭИЫ]")):
            hr = link.get('href')
            text = link.get(?)
            f.write(hr + ' ' + text)
if __name__ == '__main__':
    main()

Последний раз редактировалось gimes; 17.12.2022 в 18:19.
gimes вне форума Ответить с цитированием
Старый 17.12.2022, 18:23   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
text = link.string
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 17.12.2022, 20:25   #6
gimes
Пользователь
 
Регистрация: 17.01.2022
Сообщений: 58
По умолчанию

Благодарю. А как сделать обратную задачу? Отобрать результаты, в которых в тексте ссылки на странице отсутствуют русские буквы? Вот так не работает:
Код:
for link in soup.find_all('a', class_ = 'page_doc_title', string = re.compile("[!A-Я]|[!а-я]")):
или
for link in soup.find_all('a', class_ = 'page_doc_title', string = re.compile("[^A-Я]|[^а-я]")):
gimes вне форума Ответить с цитированием
Старый 17.12.2022, 21:15   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
re.compile("^[^А-Яа-яёЁ]*$")
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 17.12.2022 в 21:23.
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не ставится from bs4 import BeautifulSoup satfan Python 7 14.01.2021 13:17
beautifulsoup zhukvs Python 3 09.09.2019 01:05
Delphi - RegExpr - поиск сырых ссылок [MoNAMur] Компоненты Delphi 0 26.04.2012 16:54
Поиск всех внешних ссылок с сайта asale PHP 2 24.04.2012 22:56
Поиск ссылок в реестре -Flasher- Общие вопросы Delphi 1 06.01.2010 02:16