Как утащить что угодно с любого сайта |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-03-19 17:28 Например, заголовки или содержимое статьи. Сегодняшний проект послужит основой многих наших дальнейших программ. Мы научимся собирать с сайтов любые данные, которые нам нужны. У нас есть рабочий проект на цепях Маркова. Цепи Маркова — это несложный алгоритм, который анализирует сочетаемость слов в заданном тексте и выдаёт новый текст на основе старого. Похоже на работу нейронок, но на самом деле это просто перебор слов и бессмысленное их сочетание. Для работы наших первых проектов на цепях Маркова мы скачали книгу с рассказами Чехова. Программа анализирует сочетаемость чеховских слов и выдаёт текст в чеховском духе (хотя и бессмысленный). Но что, если мы хотим сделать текст не в духе Чехова, а в духе журнала «Код»? Или в духе какого-нибудь издания-иноагента? Или сделать генератор статей в духе какого-нибудь блогера? Решение — написать программу, которая посмотрит на сайте наши статьи и вытащит оттуда весь значимый текст. Единственное, что для этого понадобится, — список ссылок на статьи, но мы их уже собрали, когда делали проект с гаданием на статьях Кода. Логика работы Программа будет работать на Python на локальной машине. Алгоритм:
? Главное в таких проектах — знать структуру содержимого страницы и понимать, где именно и в каких тегах находятся нужные для вас данные. Чтобы было проще, на старте сделаем программу, которая собирает названия страниц. Как освоимся — сделаем что посложнее. Изучаем исходный код страницы Прежде чем заниматься парсингом (сбором) со страницы чего угодно, нужно выяснить, где это лежит и в какой кодировке. Мы знаем, что все статьи Кода созданы по одному и тому же шаблону, поэтому нам достаточно посмотреть, как устроена одна, чтобы понять их все. Смотрим исходный код любой нашей статьи. Нас интересуют два момента — кодировка страницы и тег <title>. Нам нужно убедиться, что в этом теге прописано название. Сначала кодировка: Эта строчка означает, что страница работает с кодировкой UTF-8. Запомним это. Теперь пролистываем исходный код ниже и находим тег <title> — именно он отвечает за заголовок страницы. Убеждаемся, что он есть и с ним всё в порядке: Библиотеки для работы В проекте нам понадобятся две библиотеки: urllib и BeautifulSoup. Первая отвечает за доступ к страницам по их адресу, причём оттуда нам будет нужна только одна команда urlopen().read — она отправляется по указанному адресу и получает весь исходный код страницы. Вторая библиотека входит в состав большой библиотеки bs4 — в ней уже собраны все команды для парсинга исходного HTML-кода и разбора тегов. Чтобы установить bs4, запускаем терминал и пишем: pip3 install bs4 Пишем код Сначала подключим все нужные библиотеки: # подключаем urlopen из модуля urllib from urllib.request import urlopen # подключаем библиотеку BeautifulSoup from bs4 import BeautifulSoup Теперь объявим список страниц, которые нужно посетить и забрать оттуда заголовки. Мы уже составили такой список для проекта с гаданием на статьях Кода, поэтому просто возьмём его оттуда и адаптируем под Python: url = [ "https://thecode.media/is-not-defined-jquery/", "https://thecode.media/arduino-projects-2/", "https://thecode.media/10-raspberry/", "https://thecode.media/easy-css/", "https://thecode.media/to-be-front/", "https://thecode.media/cryptex/", "https://thecode.media/ali-coders/", "https://thecode.media/po-glandy/", "https://thecode.media/rgb/", "https://thecode.media/10-go/", "https://thecode.media/coffee/", ] Теперь перебираем все элементы этого массива в цикле, используя всю мощь библиотек. Обратите внимание на строчку, где мы получаем исходный код страницы — мы сразу конвертируем его в нужную кодировку, которую выяснили на предыдущем этапе: # открываем текстовый файл, куда будем добавлять заголовки file = open("zag.txt", "a") # перебираем все адреса из списка for x in url: # получаем исходный код очередной страницы из списка html_code = str(urlopen(x).read(),'utf-8') # отправляем исходный код страницы на обработку в библиотеку soup = BeautifulSoup(html_code, "html.parser") # находим название страницы с помощью метода find() s = soup.find('title').text # выводим его на экран print(s) # сохраняем заголовок в файле и переносим курсор на новую строку file.write(s + ' ') # закрываем файл file.close() Python Запускаем и смотрим на результат: Итоговый код # подключаем urlopen из модуля urllib from urllib.request import urlopen # подключаем библиотеку BeautifulSout from bs4 import BeautifulSoup url = [ "https://thecode.media/is-not-defined-jquery/", "https://thecode.media/arduino-projects-2/", "https://thecode.media/10-raspberry/", "https://thecode.media/easy-css/", "https://thecode.media/to-be-front/", "https://thecode.media/cryptex/", "https://thecode.media/ali-coders/", "https://thecode.media/po-glandy/", "https://thecode.media/megaexcel/", "https://thecode.media/coffee/", ] # открываем текстовый файл, куда будем добавлять заголовки file = open("zag.txt", "a") # перебираем все адреса из списка for x in url: # получаем исходный код очередной страницы из списка html_code = str(urlopen(x).read(),'utf-8') # отправляем исходный код страницы на обработку в библиотеку soup = BeautifulSoup(html_code, "html.parser") # находим название страницы с помощью метода find() s = soup.find('title').text # выводим его на экран print(s) # сохраняем заголовок в файле и переносим курсор на новую строку file.write(s + '. ') # закрываем файл file.close() Python Что дальше А дальше логичное продолжение — программа на цепях Маркова, которая будет генерировать заголовки для статей Кода на основе наших старых заголовков. Подписывайтесь на нашу группу, чтобы не пропустить новые проекты. Источник: m.vk.com Комментарии: |
|