Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 27.07.2021
Сообщений: 2

Из полученного списка ссылок вывести результаты только тех, которые начинаются с 24hours

01.08.2021, 05:48. Показов 2656. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

все еще пишу парсер для livinternet и поскольку границу парсинга указать я не смог (точнее смог после долгих мучений, но это не имеет смысла, так как там есть лишние значения). Я решил зайти с другой стороны, выделить нужные мне значения через общий признак. Теперь процесс выглядит так.

1. Собираем с веб страницы все значения тэга <a>, то есть все ссылки ( сделано )
2. Выбрать только те ссылки, в которых url начинается на 24hours.html, ведь именно их анкоры и являются поисковыми фразами, которые я и хочу собрать. ( именно эту операцию в данный момент я не знаю как сделать)
3. Из выбранных ссылок вывести список анкоров, они же и поисковые фразы, которые мне нужны ( в целом с этим тоже нет проблем, ведь список анкоров я смог вывести, однако учитывая то, что я не смог выбрать только те ссылки, url которых начинается с 24hours.html, у меня выводятся анкоры всех ссылок со страницы, элементов меню и др.

Собственно вот мой код сейчас

Python
1
2
3
4
5
6
import urllib.request
from bs4 import BeautifulSoup
html = urllib.request.urlopen('https://www.liveinternet.ru/stat/ru/auto/queries.html?id=19207&id=19188&id=19221&id=610&id=19945&per_page=100&ok=+OK+')
soup = BeautifulSoup(html, 'html.parser')
for i in soup.find_all('a', href=True):
    print(i.text)
Осталось только добиться выполнения второго пункта, что бы выводились анкоры только нужных мне ссылок. Как это сделать?

По сути нужно оставить только те строки, в которых встречается значение 24hours.html , пытался через регулярные выражения сделать, но так и не смог. Прошу помочь, буду очень благодарен.

Добавлено через 1 час 7 минут
Вообще через программу я выделил вот такое регулярное выражение (?<=0=1">).*?(?=<), которое на раз два парсит нужный мне результат, но вот как его прописать в питоне я так и не могу понять, вроде столько библиотек, уже целые сутки гуглю и прочитал все возможные варианты и через регулярки и через селект и через еще кучу способов использование и совмещения и выделения. Ну почему нету простой функции спарсить все ссылки с таким то признаком и просто прописать признак в скобках, ну почему просто нельзя задать регулярку и указать в ней что идет перед текстом и что после него. Все селекты и регулярки и задания границ парсинга что я нашел на бесчисленных сайтах которые сегодня пересмотрел не дали результата. Прошу помогите! Что я делаю не так...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2021, 05:48
Ответы с готовыми решениями:

Найти сумму тех элементов списка, которые начинаются на заданную цифру
Использовать List.fold. Найти сумму тех элементов списка, которые начинаются на заданную цифру.

Сформировать результирующий массив В, элементами которого являются суммы элементов только тех строк матрицы А, которые начинаются с К положительных чи
Дана целочисленная матрица А(Н,Н). Сформировать результирующий массив В, элементами которого являются суммы элементов только тех строк...

Вывести только те слова, которые начинаются с прописной буквы
Работа с текстовыми файлами Дана строка. Вывести только те слова сообщения, которые начинаются с прописной буквы.

1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
01.08.2021, 09:55
Лучший ответ Сообщение было отмечено Ruskrol как решение

Решение

Ruskrol, да че тут мудрить-то?
Python
1
2
3
4
5
for i in soup.find_all('a', href=True):
    if re.match(r'<a href="24hours.html', str(i)):
        print(i)  # ссылка
        print(i.text)  # анкор
        print()
Добавлено через 5 минут
Да и зачем тут регулярки?
Python
1
2
    if str(i).startswith('<a href="24hours.html'):
        print(i.text)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2021, 09:55
Помогаю со студенческими работами здесь

Вывести только те слова, которые начинаются на гласную букву
Помогите написать программу, в которой есть два текстовых поля (richTextBox). В 1 текстовое поле пользователь вводит текст, 2-е программа...

Вывести только те слова сообщения, которые начинаются с прописной буквы
Вывести только те слова сообщения, которые начинаются с прописной буквы string str ; str = textBox1.Text; ...

Вывести только те слова сообщения, которые начинаются с прописной буквы
Не могу написать программы( помогите пожалуйста!! 1. Вывести только те слова сообщения, которые начинаются с прописной буквы. 2....

Вывести только те строки текста, которые начинаются с латинского символа A
Нужно вывести только те строки, которые начинаются с латинского символа A. получает на вход: I am purple, yellow,...

Файл: вывести только слова, которые начинаются с гласных букв
Прочитать английский текст из файла и выводит только те слова которые начинаются с гласных букв.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru