Парсер постов вконтакте: [10 лучших сервисов 2023 года]

Содержание

Топ-5 инструментов для парсинга в социальных сетях (ВКонтакте, Фейсбук)

Парсер для социальных сетей – автоматический инструмент, который может извлекать данные не только из Facebook, Twitter, Instagram, LinkedIn, ВКонтакте, но еще из блогов, электронных энциклопедий и новостных сайтов. Все порталы схожи в одном – они собирают пользовательский контент в виде неструктурированных данных, доступных только через Интернет. Определение парсера для социальных сетей знают все. Мы покажем, как использовать данные из соц.сетей в бизнесе и перечислим 5 лучших инструментов для их парсинга.

₽0.00

Скачать бесплатно

₽0.00

Скачать бесплатно

₽0.00

Скачать бесплатно

ДОСКИ ОБЬЯВЛЕНИЙ

ЦИАН

₽0.00

Скачать бесплатно

1 Что можно сделать с собранными данными парсером из социальных сетей?

2 Топ 5 инструментов парсинга в социальных сетях

2.1 Octoparse

2. 2 Dexi.io

2.3 OutWit Hub

2.4 Scrapinghub

2.5 Parsehub

3 Вывод

3.1 Похожие публикации:

Что можно сделать с собранными данными парсером из социальных сетей?

Социальные сети – огромная кладезь данных о поведении человека. Собранная информация дает социологам и бизнес-экспертам новые возможности для понимания поведения отдельных групп людей и общества в целом. Аналитика социальных медиа и обзоры платформ рассказывают, кто первым внедрил анализ данных в социальных сетях. Это были типичные компании в розничной и финансовой отраслях. Они применяли аналитику в социальных сетях, чтобы повысить узнаваемость бренда и уровень обслуживания клиентов, улучшить маркетинговые стратегии и даже выявить мошенничество.Набор данных для социальных сетей может применяться для:

  • Определения настроения клиента
  • Сегментации целевого рынка
  • Онлайн мониторинга брендинга
  • Определения тенденций рынка

Собрав отзывы клиентов из соц.

сетей, вы можете проанализировать их отношение к определенной теме или продукту, оценить подтекст и чувства. Если отслеживать настроение пользователей, можно понять общую удовлетворенность и лояльность клиентов, их заинтересованность. Это дает представление о ваших текущих и предстоящих маркетинговых кампаниях. В Википедии написано, что «Целевой рынок – группа клиентов (частных лиц, домохозяйств или организаций), для которой компания разрабатывает, внедряет и поддерживает маркетинговый комплекс, соответствующий их потребностям и предпочтениям».


Получение и анализ набора данных из социальных сетей дают понять, кому и когда продавать ваш продукт или услугу. Определяйте целевые рынки, чтобы максимизировать рентабельность инвестиций в маркетинг. Онлайн мониторинг брендинга позволяет услышать мнение ваших клиентов и узнать, что говорят конкуренты, пресса и ведущие авторитеты (KOL). Речь идет не только о вашем продукте или услуге, а еще и об обслуживании клиентов, процессе продаж, связях с общественностью и всех точках взаимодействия покупателей с вашим брендом.

Важно определять рыночные тенденции: это поможет скорректировать бизнес-стратегии и вести бизнес в одном темпе с изменениями, которые могут возникать в вашей отрасли. Для анализа тенденций рынка нужны инструменты автоматизации большого объема данных. Они сравнивают информацию за определенный период времени, отслеживают лидеров мнений этой отрасли и публикации в социальных сетях.

Топ 5 инструментов парсинга в социальных сетях

Octoparse

Теперь все данные у вас под рукой без программирования! Octoparse – один из лучших бесплатных автоматических инструментов для парсинга веб-страниц. С ним вы без навыков кодирования сможете решить самые сложные задачи по парсингу данных. В последней версии 7 есть интуитивно понятный интерфейс «укажи и щелкни». Софт поддерживает работу с бесконечной прокруткой, есть аутентификация при входе в систему, ввод текста (для просмотра результатов парсинга), выбор из выпадающих меню. Контент можно экспортировать в Excel, JSON, HTML или в базы данных.

Если вы хотите создать парсер для извлечения данных из динамических сайтов в режиме реального времени, вам подойдет Octoparse Cloud Extraction (платный тариф). Он поддерживает планировку работы.Octoparse опубликовал много тщательно разработанных учебных пособий по парсингу данных из социальных сетей: например, извлечению твитов из Twitter и постов из Reddit. В репозиториях GitHub есть готовые парсеры. Чтобы получить информацию, вам нужно импортировать инструмент в приложение.

Dexi.io

Dexi.io – еще один интуитивно понятный инструмент для автоматического парсинга. Создан для использования в коммерческих целях, стартовая цена – $119 в месяц. Dexi.io поддерживает три вида роботов: extractor, crawler и Pipes. Чтобы пользоваться Dexi.io, вам не обойтись без навыков программирования. Вы можете интегрировать сторонние сервисы для решения своих задач, организации хранения информации в облаке, анализа текста (интеграция с сервисом MonkeyLearn). Доступна интеграция с AWS, Google Drive, Google Sheets.

Addon (платный план) – революционная функция Dexi.io, количество дополнений в которой постоянно растет. С их помощью вы можете разблокировать больше функций, доступных в Extractor и Pipes.

OutWit Hub

В отличие от Octoparse и Dexi.io, Outwit Hub предлагает упрощенный графический пользовательский интерфейс, сложные функции очистки и распознавания структуры данных. Сначала Outwit Hub работал как дополнение к Firefox, потом стал отдельным приложением. OutWit Hub может извлекать и экспортировать ссылки, адреса электронной почты, новости RSS и таблицы данных в базы данных Excel, CSV, HTML или SQL. У Outwit Hub есть функция быстрого сканирования, которая быстро собирает данные из списка введенных URL-адресов. Новичкам придется изучить несколько учебных пособий и документов, так как в самом приложении обучающего интерфейса нет.

Scrapinghub

Scrapinghub – облачная веб-платформа для парсинга, которая позволяет масштабировать парсинг. Инструмент предлагает интеллектуальный загрузчик, позволяющий обойти блокировки. Здесь есть готовые сервисы веб-поиска и наборы данных. Приложение состоит из 4 инструментов: Scrapy Cloud для развертывания и запуска парсеров на основе Python; Portia – программное обеспечение с открытым исходным кодом для извлечения данных без кодирования; Splash – инструмент рендеринга JavaScript с открытым исходным кодом для извлечения данных с веб-страниц, использующих JavaScript; Crawlera поможет избежать блокировки от веб-сайтов, парсеров из разных мест и IP-адресов. Хоть Scrapehub и не дает максимально полный набор инструментов, он считается довольно сложной и мощной платформой для парсинга. Имейте ввиду, что каждый инструмент Scrapehub оплачивается отдельно.

Parsehub

Parsehub – еще один парсер для домашних компьютеров. Работает без кода, поддерживает Windows, Mac OS X и Linux. Выбирать и парсить данные со страниц JavaScript и AJAX можно с помощью графического интерфейса. Их можно извлекать из вложенных комментариев, карт, изображений, календарей и даже всплывающих окон. У Parsehub есть расширение для браузера, с помощью которого можно мгновенно запускать парсинг. Информацию можно экспортировать в Excel, JSON или через API. Спорный момент у Parsehub – тарифные планы. Платная версия стоит от $149 в месяц, что выше, чем у большинства доступных на рынке продуктов. Стандартный план Octoparse стоит всего $89 в месяц за неограниченное количество парсинга страниц. Бесплатный план есть, но с него можно извлечь данные только с 200 страниц и с 5 рабочих мест.

Вывод

Многие каналы социальных сетей предлагают платные API-интерфейсы для пользователей, ученых, исследователей и специальных организаций: например, Thomson Reuters и Bloomberg в службе новостей, Twitter и Facebook в социальных сетях. Онлайн-экономика стремительно развивается. В этих условиях социальные сети открывают много новых возможностей для вашего бизнеса. Вы можете стать лидером в своей области, прислушиваясь к мнению ваших пользователей и взаимодействуя с потенциальными клиентами совершенно новыми способами.

Просмотров: 778

Настраиваем граббер и автопостинг во Вконтакте на PHP

Обновление! В связи с частыми просьбами помочь с граббером и постером в ВК, принял решение обновить его под новые методы VK API (актуально на 11 сентября 2022 года).
Теперь скрипт умеет:
[+] Загружать и выгружать все фотографии из записи на вашу страницу в высоком разрешении;
[+] Работать с видео на стене и выгружать его в ваше сообщество;
[+] Все записи идут в отложку +3 часа с момента парсинга;
[+] К записям добавляется ссылка на источник, чтобы не получать предупреждения от администрации Вконтакте.
[-] Из скрипта убрал возможность наложения водяного знака на фотографии. Функционал доступен в старой версии скрипта по адресу: https://yakovtsov.ru/files/vkgrab_old.zip 

Несколько лет назад я написал небольшой скрипт граббер Вконтакте для автоматического парсинга постов. С тех пор многое изменилось, но скрипт не потерял свою актуальность. В связи с этим я решил обновить данный скрипт и восстановить его работоспособность.

Содержание:

Задачи которые выполняет скрипт

У вас есть сообщество в ВК и вам необходимо его наполнять контентом, но делать руками этого не хочется. Вы выбираете несколько тематических сообществ, настраиваете скрипт и ваше сообщество начинает наполняться контентом в автоматическом режиме.

При желании вы можете уникализировать этот контент, чтобы вам не приходили страйки от Вконтакте.

Что умеет скрипт граббера и автопостинга

В выбранный промежуток времени проверять список указанных сообществ на наличие новых постов, копировать текст, фото, видео и другую информацию в ваше сообщество. Копирование вложений происходит с помощью перезагрузки через ваш сервер, на котором на изображения накладывается водяной знак – watermark (актуально в старой версии скрипта), после чего запись размещается в вашем сообществе.

Настройки граббера Вконтакте

Настройки граббера/парсера не вызовут у вас сложностей, достаточно делать все по инструкции которая размещена ниже.

  1. Регистрируем новый хостинг с поддержкой PHP7 и MySQL. Буду благодарен если зарегистрируетесь по моей реферальной ссылке: https://www.reg.ru/?rlink=reflink-42469
  2. Делегируем домен на хостинг
  3. Скачиваем архив со скриптом https://yakovtsov.ru/files/vkgrab.zip
  4. Распаковываем архив у себя на хостинге
  5. Создаем новую базу данных и заливаем в нее файл бэкапа – vkgrab.sql
  6. Открываем файл bot.php и вносим в него следующие настройки:

6.1. Настраиваем подключение к базе данных. Указываем имя пользователя, пароль и имя базы данных

6.2. Получаем сервисный ключ доступа. Для этого переходим по ссылке https://vk.com/apps?act=manage , нажимаем “Создать приложение” и заполняем данные: название, платформа = сайт, адрес сайта, базовый домен и нажимаем “подключить сайт”.

Переходим в настройки и копируем сервисный ключ доступа

Вставляем сервисный ключ доступа в переменную $vk_service_key

6. 3. Получаем токен для работы с API Вконтакте. Переходим по адресу: https://api.vk.com/oauth/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=НОМЕР-ТЕЛЕФОНА&password=МОЙ-ПАРОЛЬ, предварительно подставив свои данные (номер телефона и пароль).

Если у вас двухфакторная авторизация, то переходим по ссылке redirect_uri

Вводим код доступа и нажимаем “Отправить код”

Откроется новая страница

Из адресной строки копируем все что после &access_token= и до &user_id=

Вставляем токен в переменную $vk_user_token

6.4. Вставляем ID  вашего сообщества в переменную $vk_public_id. Чтобы узнать ID вашего сообщества – откройте ваше сообщество и перейдите в раздел “Статистика”. В адресной строке все что после stats?gid= и есть ID вашего сообщества;

6.5. Вставляем ID пользователя в переменную $vk_user_id (с помощью которого был получен токен и который является администратором сообщества куда будет происходить постинг). Чтобы узнать ID пользователя, перейдите в раздел “Музыка”. Все что после audios и есть ID пользователя.

6.6. Добавляем список сообществ для парсинга. Домены сообществ добавляем через запятую в кавычках как показано в примере.

Узнать домен можно открыв страницу сообщества. Все что после https://vk.com/… и есть домен сообщества.

6.7. Сохраняем файл bot.php

7. Открываем адрес https://site.ru/vkgrab/bot.php, после чего в вашем сообществе должна появиться новая запись.

8. Добавить свой водяной знак можно заменив файл wm.png

9. Настроить публикацию поста можно на 171 строке в файле bot.php

На этом настройка скрипта завершена. Теперь при обращении к скрипту в вашем сообществе будет появляться новая запись.

Настройки автопостинга Вконтакте

После того как скрипт заработал нам необходимо настроить автопостинг. Для этого мы будем использовать планировщик заданий CRON. Я покажу на примере ISPmanager.

  1. Переходим в “Планировщик” и создаем новое задание
  2. В поле команда вставляем: wget -q -O – https://site.ru/vkgrab/bot.php > /dev/null 2>&1
  3. Выполнять – каждый час (можно выбрать любой промежуток)

После настройки планировщика в нашем сообществе ежечасно будет появляться новый контент.

Если у вас возникнут трудности с настройкой, пишите в комментариях или мне в телеграм.

regex101: Библиотека регулярных выражений

javascript

принц первая попытка

я просто пробую это

Представлено принцем — 5 часов назад любой URL внутри вашего текста

Прислал Abdullah Alweheid — 13 часов назад

pcre

Parcing2

aa

Прислал аноним — 15 часов назад

pcre2

Палиндромы

Соответствует палиндромам: произвольная длина игнорирует незначащие символы (пробелы, пунктуацию) игнорирует диакритические знаки, если текст нормализован NFD Ограничение: в случае вложенных палиндромов (например, «a été à») он будет соответствовать вложенным («a», «été», «à»), а не самому длинному («a été à»).

Прислал NicolaF_ — 20 часов назад

pcre2

Получить путь из любого текста

Получить путь (стиль Windows) из любого типа текста (сообщение об ошибке, электронная почта…), в кавычках или без. ЭТО КОММЕНТАРИЙНАЯ ВЕРСИЯ !_ чтобы просто скопировать и использовать его, перейдите по ссылке https://regex101.com/r/zWGLMP. Относительный путь не поддерживается…

Прислал nitrateag — 21 час назад

pcre2

Получить путь из любого текста

Получить путь (стиль Windows) из любого типа текста (сообщение об ошибке, электронная почта…), в кавычках или без. ЭТО ОДНОЛИНЕЙНАЯ ВЕРСИЯ!_ Если вы хотите понять, как это работает, или отредактировать его, перейдите по ссылке https://regex101.com/r/7o2fyy. Относительный путь не поддерживается…

Прислал nitrateag — 21 час назад

pcre2

Продолжительность преобразования списка видео YouTube API V3

Преобразование списка видео YouTube API V3, продолжительности видео в отдельные числа для вычислений.

Прислал Bo — день назад

pcre

номер телефона trim

номер телефона trim

Прислал аноним — день назад

pcre2

Захват необязательных атрибутов часто видим HTML в любом порядке

5 Мы регулярные выражения для управления HTML вместо использования синтаксического анализатора DOM. Но что ж, в некоторых случаях у нас нет синтаксического анализатора или эффективность вызывает беспокойство. В большинстве случаев я думаю, что лучше всего использовать оба вместе. Сначала простое и надежное регулярное выражение для извлечения данных из HTM…

Прислал Patrick Janser — день назад

java

Адрес компании | Висконсин | Торговая марка | USA

s

Submitted by anonymous — 2 days ago

java

carbon

test1

Submitted by anonymous — 2 days ago

javascript

YouTubeVideoUrl

YouTubeVideoUrl

Submitted by EdwardKonovalov — 2 days ago

golang

отметка времени журнала

извлечь отметку времени из записи журнала

Прислал аноним — 2 дня назад

pcre

Сопоставить комментарии HTML с вложенными комментариями

Даже если это недопустимый HTML, лучше понять концепцию рекурсии в шаблонах. Это был ответ на вопрос о переполнении стека: https://stackoverflow.com/questions/75282404/remove-comments-from-some-generated-html-what-can-be-invalid-with-nested-commen Идея состоит в том, чтобы использовать рекур…

Прислал Patrick Janser — 2 дня назад

python

VSCODE 代码 фрагмент 替换 为 Pycharm 格式

VSCODE 代码 фрагмент 替换 为 Pycharm 格式

, представленная Anonymous — 2 дня назад

PCRE

Поиск сцепления с запятыми

REGEX Используется для поиска применных компаний. Используйте для устранения неполадок коды PHP 7.2

Прислал аноним — 2 дня назад

pcre2

Математика любая буква

Просто быстрый пример шаблона \p{L}

Прислал аноним — 2 дня назад

javascript

SRD TEST Internal

Проверка мужества для сбора статистики и суммы

Прислано анонимом — 4 дня назад RFC3339: https://www.rfc-editor.org/rfc/rfc3339. Расширяется на: https://regex101.com/r/qH0sU7, добавляя именованные группы захвата для лучших практик кодирования.

Прислал Elliot Huffman — 4 дня назад

javascript

получить все методы, прототип, функции и т. д.

((((\b(#|\w)+\b\.)?(\bprototype\b\.)?(\b(#|\w )+\b)(\s\=\s)?)?(\b(#|\w)+\b\s)\([\s\w,=]\s\))|(\bclass \b\s+\b\w+\b\s(расширяет\s\b\w+\b))(?=\s\{[\s\S]+\}))(?=\s*\{ [\s\S]+\})

Прислал al.gau34 — 4 дня назад

Разбор заголовков | VanessaSaurus

Какие заголовки скрываются среди наших любимых веб-сайтов? Так как у нас был выходной ко Дню поминовения я начал с редактирования эпизода подкаста, но для остаток дня хотел сделать что-то совершенно бесполезное и веселое. Вдохновленный этот пост я решил сделайте быстрый проект, чтобы исследовать пространство заголовков URL. Это было грязно и быстро, но я хотел сделать следующее:

  • Придумайте длинный список URL-адресов
  • Извлечь ответы заголовков и имена файлов cookie для каждого URL-адреса
  • Сохранение данных в файл для анализа в интерактивном веб-интерфейсе

И, конечно же, после того, как у меня было разумное начало для вышеуказанного, это быстро расширилось до включения:

  • Dockerized версия приложения
  • Действие GitHub для создания данных
  • Сценарий синтаксического анализатора для экспорта всего сайта фляги как статического

Итак, это было мое приключение ко Дню Памяти! Если вы хотите просто проверить (теперь статические) страницы результатов, созданные для действия GitHub, см. здесь. Если вы хотите использовать действие GitHub для изучения вашего собственный список URL-адресов, ознакомьтесь с инструкциями в репозитории. В противном случае продолжайте читать, чтобы узнать, как я работал над этим проектом, и несколько интересных вещи, которые я узнал, делая это.

1. Анализ данных

Сначала я начал писать простой скрипт для получения заголовков для 45 довольно популярных сайтов, но в конечном итоге нашел список из 500 сайтов для использования вместо этого. Мне пришлось сильно отредактировать список, так как многие URL-адреса больше не существовали или нуждались в них. www. приставка к работе, точка. Я также удалил URL-адреса, у которых не было безопасного соединения. Это дало мне в общей сложности 500 URL-адресов (я добавил несколько, чтобы получить хорошее четное число!) представлены в текстовом файле, URL.txt . С этих сайтов (когда я анализировал с моей локальной машины), Я нашел 615 уникальных заголовков, частота которых варьируется от присутствующих на всех сайтах. (Content-Type, N=500) на присутствие только на одном сайте (N=1). Наиболее частым был «Content-Type», за которым следовала дата. Я сделал это с помощью скрипта run.py. Я также отдельно проанализировал файлы cookie, сохранив имена, но удалив значения в случае, если они содержали какую-либо личную информацию или могли быть иным образом использованы злонамеренно. Я нашел в общей сложности 457 уникальных файлов cookie на 500 сайтах.

2. Приложение Flask

Я решил использовать Flask и ChartJS, потому что они оба относительно легко, и хотя я недавно пробовал другие библиотеки Python для построения диаграмм, по большей части они были раздражающими и подверженными ошибкам. Из этого я смог для создания основного представления для отображения всех подсчетов и табличных представлений для отображения деталей.

Зачем ты тратишь на это время?

Я полагаю, что экспорта данных может быть достаточно, но я думаю, что иногда полезно сценарии анализа пакетов с интерактивным интерфейсом для их изучения. Да, это много работы, но если вы сделаете это несколько раз, это не очень сложно, и это весело чтобы увидеть окончательный результат.

Интерфейс

Вот основной интерфейс! На «домашней» странице есть график подсчета. ось Y заголовок, а длина полосы представляет количество сайтов, на которых он есть:

Когда вы нажимаете на заголовок, вы попадаете на страницу, которая показывает значения для каждого заголовка:

Да, заголовок даты не очень интересно, кроме записи даты когда я сделал запрос! Более интересна жатка X-Recruiting , которая Я нашел подарок только для etsy и booking.com:

Меня заинтересовал этот заголовок, потому что он показался таким неожиданным. если ты просмотрите заголовок и нажмите на сайт, вы перейдете к его сводному представлению. Вот facebook:

И, наконец, есть эквивалентная страница подсчета файлов cookie:

Чтобы запустить это локально, вы можете сделать:

 $ python app/__init__.py
 * Приложение Serving Flask "__init__" (ленивая загрузка)
 * Окружающая среда: производство
   ВНИМАНИЕ: Это сервер разработки.  Не используйте его в производственном развертывании.
   Вместо этого используйте рабочий сервер WSGI.
 * Режим отладки: включен
 * Работает на http://127.0.0.1:5000/ (для выхода нажмите CTRL+C)
 * Перезагрузка со статистикой
 * Отладчик активен!
 * PIN-код отладчика: 261-026-821
 

Но вам может быть лучше с Docker, обсуждается далее.

3. Dockerize

Честно говоря, я разрабатывал это локально, но я предпочитаю создавать Dockerized версию, поэтому, если/когда кто-то найдет ее через несколько лет, они, надеюсь, смогут воспроизведите его немного лучше, чем если бы Dockerfile не был предоставлен. К собрать образ:

 $ docker build -t vanessa/headers .
 

А потом запустить, выставив порт 5000:

 $ docker run --rm -it -p 5000:5000 vanessa/headers
 

И вы можете открыть тот же http://localhost:5000 , чтобы увидеть сайт. Хотя я не запускал интерфейс для действия GitHub, мы можем использовать GitHub действие для создания данных, загрузки их как артефакта, а затем экспорта статического интерфейс. Эти шаги обсуждаются в последнем разделе.

4. Разбор страниц

Моей конечной целью было создание полностью статических файлов для всех представлений приложения. Почему мы хотим это сделать? Чтобы поделиться на страницах GitHub, конечно! Я написал довольно уродливый спагетти-эсче-скрипт parse.py, который (учитывая работающий сервер) будет извлекать страницы для файлов cookie, заголовков, и базовые сайты, а затем сохранить их в статическую папку «docs» вместе с README.md. После просмотра индекса однако на страницах GitHub вы можете перемещаться по страницам, как обычно, и это возможно потому что мы добавили в приложение префикс репозитория (url-headers).

5. Действие GitHub

Затем я сделал еще один шаг и сделал пользовательское действие GitHub, представленное в действии.yml и запустите через entrypoint.sh, который обрабатывает указанный пользователем файл URL-адресов и запускает скрипт для генерации данных. Затем он сохраняет его как артефакт, и вы можете загрузить его на свой компьютер для создания интерфейса. Пользователь действия может, конечно, делать что угодно иначе они хотят с выводами данных. Это был первый раз, когда я попытался запустить службу, которая использовала порт на GitHub. действий, так что вы можете себе представить, я столкнулся с некоторыми подводными камнями, и в конце я понял, что Мне нужно было запустить приложение фляги как служебный контейнер. Я решил, что 7 часов было достаточно, чтобы поработать над этим, и хотя было бы здорово запускать интерфейс и генерировать статический контент во время действие запущено, я лучше попробую еще раз в следующий раз. Но я все еще могу поделиться некоторыми быстрыми вещами, которые я узнал! Во-первых, вы не можете запустить подоболочку, а затем оставить ее работающей в фоновом режиме. Это не сработает:

 $(gunicorn -b "127.0.0.1:${INPUT_PORT}" приложение:приложение --pythonpath .) &
 

, но что-то вроде этого может быть в порядке, хотя я все еще не уверен, что мы сможем получить доступ к этому порту:

 gunicorn -b "127. 0.0.1:${INPUT_PORT}" app:app --pythonpath . &
 

Во-первых, это меня немного сбило с толку, потому что он вышел чисто без очистки сообщение об ошибке, и поэтому я подумал, что это был запущен предыдущий скрипт. А на самом деле была еще одна проблема. Видите эту переменную «INPUT_PORT»? Контейнер выставлял 5000, и я запускал сервер на этом порту, и логически это то, что я хотел бы сделать с Docker, чтобы сопоставить порт с моя локальная машина. Но похоже, что с действиями GitHub, так как вы бы тогда быть подключенным к порту 5000 бегуна, это ведет к выходу. Вот ошибка что получилось:

 Запуск сервера...
Traceback (последний последний вызов):
  Файл "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", строка 160, в _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  Файл "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", строка 84, в create_connection
    поднять ошибку
  Файл "/usr/local/lib/python3.7/site-packages/urllib3/util/connection. py", строка 74, в create_connection
    sock.connect (са)
ConnectionRefusedError: [Errno 111] В соединении отказано
 

Дох! В любом случае, я никогда не заставлял его работать полностью, и решил упростить действие, чтобы просто произвести данные, сохранить как артефакт, а затем вы можете загрузить на свой локальный компьютер и запустите веб-сервер и сгенерируйте интерфейс. Есть немного уловки-22, потому что нам понадобится сервисный контейнер, созданный после генерации данных, а затем взаимодействующий с помощью следующего шага, но сервисный контейнер должен быть определен и запущен до шаг. Я не уверен, что GitHub Actions поддерживает это, потому что большинство их примерами сервисов являются базы данных или другие инструменты, которые не требуют настройки или даже привязывается к хосту. В любом случае, это то, на что стоит обратить внимание в следующий раз. проект.

6. Расследование

Наконец, я хотел потратить несколько минут на изучение некоторых вещей, которые я заметили или иным образом узнали. Это, наверное, самое интересное!

У многих сайтов был заголовок p3p (N=67), но для этого набора многие из них были недействительны!

P3p относится к Платформе настроек конфиденциальности (обратите внимание на три P). Кажется, он был разработан в 2001 году, рекомендован в 2002 году, но с тех пор он устарел. Я подозреваю, что многие сайты все еще предоставляют его. Я думаю, идея заключалась в том, чтобы сайт мог определить этот заголовок, чтобы что-то сказать. об их политике конфиденциальности, но, похоже, у нее есть некоторые проблемы. Итак, мы видим рамку интернет-прошлого!

X-recruiter

Как я упоминал выше, я нашел два сайта, booking.com и etsy.com, на которых был заголовок рекрутинга. Так что, если вы ищете работу, обратитесь к ним через это! Я думаю, что проблема с этим видом Заголовок состоит в том, что если становится известно, что он существует, он становится намного менее значимым, потому что он не так трудно найти.

Facebook

У Facebook есть идентификатор отладки x-fb-debug , который, как я подозреваю, их служба поддержки использует для некоторых степень. Это длинная мешанина из бог знает чего.

 x-fb-debug EyXfGc3wcZMW8OHdKDbaweUZB1ih9.....................SHUCHayvdvSC2Gxrg==
 

Их политика безопасности контента (ссылка) дает подсказку о том, какие ресурсы разрешено загружать сайту. для любой конкретной страницы. Какие-либо из этих списков беспокоят вас (я добавил новые строки для удобства чтения)?

 источник по умолчанию * данные: блоб: 'я';
сценарий-источник *.facebook.com *.fbcdn.net *.facebook.net
*.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:*
*.spotilocal.com:* 'unsafe-inline' 'unsafe-eval' blob: data: 'self'; данные style-src: blob: 'unsafe-inline'
*;connect-src *.facebook.com facebook.com *.fbcdn.net *.facebook.net
*.spotilocal.com:* wss://*.facebook.com:* https://fb.scanandcleanlocal.com:*
attachment.fbsbx.com ws://localhost:* blob: *.cdninstagram.com 'я'
хром-расширение://boadgeojel...
хром-расширение://dliochdbjfkdb...
 

Первое расширение Chrome, похоже, предназначено для какой-то веб-трансляции, а второе Я не уверен в этом, но это последний из перечисленных здесь. Что в мире?

Да, там есть расширения для Chrome вместе с… моим локальным хостом? Так что я подозреваю, что у Facebook есть разрешение сканировать мой локальный хост для чего-то? Еще больше беспокоит «ws://localhost:*».

Сервер

Мне было любопытно посмотреть, какие серверы использовать сайты (по крайней мере, заявленные). я облажался от строки версии, чтобы получить смысл. Кажется, победителем стал nginx, чему я очень рад. о, потому что это определенно мой фаворит! Apache занимает второе место, а затем провайдеры. например, cloudflare и веб-сервисы google (gws?)

 {'nginx': 116,
 'апач': 67,
 'облачная вспышка': 38,
 'гс': 19,
 «атс»: 13,
 «сервер»: 12,
 «опенресты»: 12,
 'гсе': 11,
 'сфф': 10,
 «Майкрософт-iis»: 7,
 'эсф': 5,
 'интерфейс гугла': 3,
 'амазонки3': 3,
 «Внешний прокси-сервер YouTube»: 2,
 'github.com': 2,
 'вк': 2,
 'mw1320.eqiad.wmnet': 2,
 «тенгине»: 2,
 'ebay-прокси-сервер': 2,
 'ца_а': 2,
 'акамайнетстораже': 2,
 'mw1329.eqiad.wmnet': 2,
 «посланник»: 2,
 'кратор': 2,
 'ecd (ага': 2,
 'поддержка-контент-интерфейс': 1,
 'mw1319. eqiad.wmnet': 1,
 'Европа': 1,
 «Би-би-гтм»: 1,
 'mw1264.eqiad.wmnet': 1,
 'mw1275.eqiad.wmnet': 1,
 'Марракеш 1.16.6': 1,
 'дмс': 1,
 «щит носорога»: 1,
 'офэ': 1,
 'апачский кот': 1,
 'http-сервер (неизвестно)': 1,
 'mw1371.eqiad.wmnet': 1,
 «лайтспид»: 1,
 'ам': 1,
 'cloudflare-nginx': 1,
 'mw1370.eqiad.wmnet': 1,
 «кальмар»: 1,
 'httpd': 1,
 'mw1321.eqiad.wmnet': 1,
 'дтк10': 1,
 'пепяка': 1,
 'платформа оскар 0.366.0': 1,
 «чудо-облако»: 1,
 '566': 1,
 'mw1333.eqiad.wmnet': 1,
 'nq_website_core-prod-релиз e1fc279е-1c88-4735-bc26-d1e65243676d': 1,
 'нз': 1,
 'ганикорн': 1,
 'mw1327.eqiad.wmnet': 1,
 'апач-койот': 1,
 'веб-сервис ask.fm': 1,
 'кошачья фабрика 1.0': 1,
 'ecs (ДНК': 1,
 «веб-сервер ia»: 1,
 'ecacc (ДНК': 1,
 «пустельга»: 1,
 'mw1266.eqiad.wmnet': 1,
 'апи-шлюз': 1,
 'истио-посланник': 1,
 «умный»: 1,
 «сервер загрузки»: 1,
 «посланник-иад»: 1,
 «зум»: 1,
 «кустарные биты»: 1,
 «ракета»: 1
}
 

Но, конечно, это только часть сайтов, сообщающих о своих серверах, а именно 386:

 сумма(server_counts. values())
 

Powered By

Что насчет заголовка «Powered by»? Он присутствовал только на 55 сайтах, но я полагал, Хотел глянуть:

 {
    «РНР»: 21,
    «Экспресс»: 13,
    «ВордПресс»: 5,
    «АСП.НЕТ»: 4,
    «АРР»: 2,
    «Фенрир»: 1,
    «Яркое пятно»: 1,
    «Элемент»: 1,
    «Викторы»: 1,
    «Двигатель WP»: 1,
    "shci_v1.13": 1,
    «Издание Lovestack»: 1,
    «ХабСпот»: 1,
    «Несси»: 1
}
 

Ух ты, сколько PHP? а Вордпресс? Что такое Lovestack Edition?

Я просматривал сайты и понял, что на китайском сайте всего 8 заголовков! Это казалось маленьким по сравнению с более чем 25, которые я видел для некоторых. Тогда мне было любопытно узнать, на каких сайтах больше всего заголовки? Я покажу вам верх и низ здесь. Я был немного удивлен, что history.com оказался на вершине, потому что Я ожидал какой-то рекламной компании. 🙂

 {
    «https://history.com»: 32,
    «https://princeton.edu»: 31,
    «https://gizmodo.com»: 31,
    "https://inc. com": 31,
    "https://wired.com": 30,
    "https://forbes.com": 29,
    «https://nature.com»: 29,
    «https://newyorker.com»: 29,
    «https://www.docusign.com»: 29,
    «https://www.fastly.com»: 29,
    «https://istockphoto.com»: 28,
    «https://vox.com»: 28,
    «https://theverge.com»: 28,
    «https://utexas.edu»: 28,
    «https://vimeo.com»: 27,
    «https://nytimes.com»: 27,
    «https://slideshare.net»: 27,
    «https://yelp.com»: 27,
    «https://psychologytoday.com»: 27,
    «https://nokia.com»: 27,
    «https://airbnb.com»: 27,
    «https://upenn.edu»: 27,
    "https://gitlab.com": 27,
    «https://bbc.com»: 26,
    «https://nih.gov»: 26,
    «https://harvard.edu»: 26,
    «https://yale.edu»: 26,
    «https://oracle.com»: 26,
    «https://unicef.org»: 26,
    «https://usgs.gov»: 26,
    «https://www.docker.com»: 26,
...
    «https://about.me»: 10,
    "https://europa.eu": 9,
    "https://line.me": 9,
    «https://issuu.com»: 9,
    "https://qq.com": 9,
    «https://detik.com»: 9,
    «https://washington. edu»: 9,
    «https://rt.com»: 9,
    "https://t.co": 9,
    "https://nginx.org": 9,
    "https://4shared.com": 9,
    "https://googleblog.com": 9,
    "https://iso.org": 9,
    «https://ucoz.ru»: 9,
    «https://www.discourse.org»: 9,
    «https://archive.org»: 8,
    "https://hatena.ne.jp": 8,
    "https://amzn.to": 8,
    «https://chinadaily.com.cn»: 8,
    "https://rediff.com": 8,
    «https://sputniknews.com»: 8,
    «https://rakuten.co.jp»: 7
}
 

Мне было бы интересно узнать, действуют ли в разных странах разные правила в отношении этих заголовки, и если бы мы могли видеть это в данных. Ради интереса заглянем на сайт history.com и посмотрите, что, черт возьми, все эти заголовки. Я не был очень рад видеть префикс «aetn-» заголовки, которые, казалось, фиксируют информацию о моем местоположении.

 aetn_backend fastlyshield--shield_cache_bwi5125_BWI
aetn-веб-платформа веб-центр
aetn-watch-платформа ложная
aetn-государственный код XXX
aetn-почтовый индекс XXX
aetn-долгота ХХХ
атн-широта ХХХ
aetn-eu N
aetn-desktop
aetn-название-страны-США
aetn-код страны США
aetn-континентальный код NA
этн-город ХХХ
aetn-код города XXX
 

Видите ли, я ничего явно не предоставил. Я не уверен, что это за заголовки, потому что мои поиски Google подвели меня. Кто-нибудь знает?

etag

etag заголовок отслеживает конкретную версию ресурса. Это дает нам сумасшедший уровень детализации, если мы хотим чтобы точно воспроизвести некоторые веб-скрапингы. Конечно, у нас были бы проблемы, если бы электронный тег выйти на несоответствие. Теперь даже путевая машина не может нам помочь!

Ссылка

Ссылка заголовок, по-видимому, содержит фактические атрибуты ссылки и представляет собой альтернативные адреса. Например, docker.com имеет:

 docker.com/>; rel='shortlink', docker.com/>; rel='canonical', docker.com/index.html>; отн='редакция'
 

Всего

Я получил огромное удовольствие от этого небольшого упражнения! Я думаю, что это важно для инженеров-исследователей программного обеспечения. думать за пределами кода и учитывать:

  • Сделал ли я этот инструмент простым для воспроизведения и настройки?
  • Упростил ли я автоматизацию?
  • Может ли исследователь визуализировать результат?

Для любого инструмента, связанного с данными, хотя я не делаю много работы в космосе, Я убежденный сторонник идеи, что программное обеспечение должно облегчать не только «запуск» но также и для обмена результатами и взаимодействия с ними.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *