Search
Write a publication
Pull to refresh

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 применений есть, но простой парсинг новостей, не знаю как-будто не тянет на простой кейс, наоборот сложновато получается новичкам.

Sign up to leave a comment.

Articles