Comments 13
Первое из приведённых Вами СМИ - не только иноагент, но и нежелательная организация. Как минимум распространение их материалов рассматривается как правонарушение (на первый раз административка, на второй - уголовка). Как отнесутся к распространению информации о способах парсинга сайта нежелательной организации - предсказать сложно, но я бы не рисковал и для общедоступной публикации под своим собственным именем выбрал другой пример.
Может, автор не в РФ
Хуже цензуры только самоцензура.
А Russia Today вообще не СМИ, а пропагандистская помойка. Так что лишний раз рекламировать её не нужно.
А второе и третье - не СМИ вообще. Что же тогда парсить.
Meduza действительно является нежелательной организацией в РФ, в тоже время закон предусматривает административную или уже уголовную ответственность в случае распространения материалов организации. В статье я не даю ссылки на медиа-ресурс и не предоставляю их материалы напрямую, а лишь рассказываю о потенциальной возможности собрать информацию.
Закон прямо запрещает распространять информационные материалы, которые издаются или распространяются организациями, деятельность которых признана нежелательной. Этот запрет распространяется и на публикации в СМИ или в интернете. Поэтому за публикацию материалов нежелательных организаций могут наказать по статье 20.33 КоАП РФ (при повторном нарушении может грозить уголовная ответственность).
И не российское, а эмигрантское.
Официального API нет. Нужно искать скрытый.
...
Найти его не так сложно. Пару кликов в панели для разработчиков (вкладкаNetwork
) и внимательность.
Добавлю, что если у сервиса есть мобильное приложение, то имеет смысл обратить внимание и на него. К тому же мобильные апи часто имеют гораздо более слабую защиту от парсинга
Теперь можно и узнать как такие влиятельные медиа-ресурсы представляют и позиционируют выборы в США и другие животрепещущие темы, также используя весь функционал питона и его библиотек.
надеюсь механизм этого будет раскрыт во второй статье
Подождите, но не кажется ли вам, что тут прям из пушки по воробьям!? Все сми (за редчайшим исключением) хотят попадать в Яндекс Новости и всякие Google Discover, а значит имеют rss фиды. Смотрите ка, вот комерсантовский: https://www.kommersant.ru/RSS/news.xml и это значительно проще, чем сложный парсинг через Selenium или скрытые API. В чем плюсы:
Простой, а главное СТАНДАРТИЗОВАННЫЙ XML‑формат: заголовок, ссылка, краткое описание, дату и даже полное описание.
Не требуется имитировать браузер.
Фиды редко меняются и всегда доступны (им же в google discover надо)
Ну и вот вам элементарнейшая библиотечка с примером вывода:
import feedparser
url = "https://www.kommersant.ru/RSS/news.xml"
feed = feedparser.parse(url)
for entry in feed.entries[:5]:
print(entry.published, entry.title)
print(entry.link)
print(entry.summary)
print("---")
Знаю об использовании RSS-ленты напрямую, но такой формат фактически отбирает возможность фильтрации по ключевым словам и датам в запросе т.к. там насколько я знаю, отсутствуют такие параметры. Этот формат будет удобен если нам необходимо получить все новости/статьи без разбора. Мне же важно было иметь возможность фильтрации статей.
ключевые слова не помню, надо посмотреть, даты точно есть. Это обязательной поле в rss. И не все новости, а как раз последние свежие, там по условиям Google Discover как раз нельзя передавать все. Это подменяемый файл, который обновляется много раз в сутки и там постоянный свежак. Есть фиды где все без разбора, но они ипспользуются как карты новостей уже. Вообщем, можно и так как вы, но фиды как-будто проще. Ваш парсинг скорее подойдет для более точечных задач. Я таким способом искал, например битые ссылки на сайтах, чтобы искать брошенные домены. Еще 1000 применений есть, но простой парсинг новостей, не знаю как-будто не тянет на простой кейс, наоборот сложновато получается новичкам.
Парсинг российских СМИ