CoderCastrov logo
CoderCastrov
Парсер

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

Парсинг Топовых пользователей и репозиториев на Github по ключевому слову в одной строке кода
просмотров
5 мин чтение
#Парсер
Table Of Content

Парсинг веб-сайтов

И создание карты для поиска пользователей в определенном местоположении

_Отказ от ответственности: _Эта статья предназначена только для образовательных целей. Мы не поощряем никого скрапить веб-сайты, особенно те, которые могут иметь условия против таких действий.


Мотивация

GitHub - это веб-сайт, который помогает разработчикам хранить и отслеживать свой код. Мне нравится GitHub не только потому, что он позволяет мне контролировать мой код, но и потому, что он помогает мне открывать интересные библиотеки, проекты и крутых разработчиков.

На GitHub более 56 миллионов разработчиков. Это означает, что просто исследуя GitHub, вы потенциально можете найти партнеров для своего программного обеспечения или своего следующего сотрудника. Почему бы нам не воспользоваться этой платформой, чтобы найти интересных людей?

Что такое Top Github Scraper?

Tор-github-scraper - это библиотека, которую я создал для парсинга более 1k лучших профилей GitHub в области машинного обучения в моей статье Я спарсил более 1k лучших профилей GitHub в области машинного обучения и вот что я нашел.

Top-github-scraper позволяет получить лучших пользователей, участников и репозитории GitHub на основе определенного ключевого слова.

Для каждого пользователя top-github-scraper парсит 16 различных показателей.

И что еще лучше, вам нужна всего 1 строка кода:

чтобы получить таблицу всех участников лучших репозиториев GitHub при поиске ключевого слова "машинное обучение":

Этот инструмент был полезен для меня, чтобы узнать больше о других пользователях GitHub, поэтому я надеюсь, что он будет полезен и вам!

Установка и настройка

Для установки top-github-scraper выполните следующую команду:

pip install top-github-scraper

Добавление учетных данных

Обратите внимание, что вы можете использовать top-github-scraper без учетных данных. Однако в этом случае вы сможете делать только 60 запросов в час. Если вы добавите свои учетные данные (имя пользователя и токен), вы сможете делать до 5 000 запросов в час.

Чтобы убедиться, что вы можете парсить множество репозиториев и пользователей, добавьте свои учетные данные GitHub в файл .env в корневом каталоге проекта.

touch .env

Добавьте свое имя пользователя и токен в файл .env:

GITHUB_USERNAME=вашеимяпользователя
GITHUB_TOKEN=ваштокен

Для чего можно использовать парсер top-github-scraper?

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

Получение URL-адресов лучших репозиториев GitHub

Вы можете получить список URL-адресов репозиториев, которые появляются первыми в результатах поиска при поиске определенного ключевого слова:

с использованием метода get_top_repo_urls:


[
    "/josephmisiti/awesome-machine-learning",
    "/wepe/MachineLearning",
    "/udacity/machine-learning",
    "/Jack-Cherish/Machine-Learning",
    "/ZuzooVn/machine-learning-for-software-engineers",
    "/rasbt/python-machine-learning-book",
    "/lawlite19/MachineLearning_Python",
    "/lazyprogrammer/machine_learning_examples",
    "/trekhleb/homemade-machine-learning",
    "/ujjwalkarn/Machine-Learning-Tutorials",
    ...
]

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

Запустив приведенный выше код, вы должны увидеть что-то подобное:

['/tensorflow/tensorflow',
 '/josephmisiti/awesome-machine-learning',
 '/scikit-learn/scikit-learn',
 '/fighting41love/funNLP',
 '/ZuzooVn/machine-learning-for-software-engineers',
 '/ageron/handson-ml',
 '/eriklindernoren/ML-From-Scratch',
 '/trekhleb/homemade-machine-learning',
 '/PaddlePaddle/Paddle',
 '/kailashahirwar/cheatsheets-ai',
 '/ageron/handson-ml2',
 '/ty4z2008/Qix',
 '/lutzroeder/netron',
 ...
]

Получение информации о лучших репозиториях на GitHub

Вы также можете получить информацию о наиболее подходящих репозиториях, включая stargazers_count, forks_count, contributors и информацию о контрибьюторах.

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

{
        "stargazers_count": 48620,
        "forks_count": 12155,
        "contributors": {
            "login": [
                "josephmisiti",
                "josephmmisiti",
                "hslatman",
                "0asa",
                "ajkl",
                "ipcenas",
                "cogmission",
                "spekulatius",
                "basickarl",
                "NathanEpstein"
            ],
            "url": [
                "[https://api.github.com/users/josephmisiti](https://api.github.com/users/josephmisiti)",
                "[https://api.github.com/users/josephmmisiti](https://api.github.com/users/josephmmisiti)",
                "[https://api.github.com/users/hslatman](https://api.github.com/users/hslatman)",
                "[https://api.github.com/users/0asa](https://api.github.com/users/0asa)",
                "[https://api.github.com/users/ajkl](https://api.github.com/users/ajkl)",
                "[https://api.github.com/users/ipcenas](https://api.github.com/users/ipcenas)",
                "[https://api.github.com/users/cogmission](https://api.github.com/users/cogmission)",
                "[https://api.github.com/users/spekulatius](https://api.github.com/users/spekulatius)",
                "[https://api.github.com/users/basickarl](https://api.github.com/users/basickarl)",
                "[https://api.github.com/users/NathanEpstein](https://api.github.com/users/NathanEpstein)"
            ],
            "contributions": [
                671,
                105,
                21,
                12,
                11,
                9,
                8,
                7,
                7,
                7
            ]
        }
    }

Получение профилей лучших пользователей GitHub

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

Отлично! Теперь у нас есть данные. Но просто смотреть на таблицу не очень интересно. Мы можем либо анализировать данные, либо создать карту для поиска пользователей по их местоположению.

Создание карты с полем поиска

Если вы работодатель, который ищет будущих сотрудников с помощью GitHub, вам может понадобиться поиск по местоположению. Поэтому мы создадим карту, на которой будут отображаться местоположения лучших пользователей GitHub, как показано ниже:

Мы будем использовать Folium, чтобы создать карту. Установите Folium с помощью команды

pip install folium

Теперь мы получим данные о лучших участниках машинного обучения и пользователей и объединим их вместе.

Получите широту, долготу, адрес и город

Преобразуйте DataFrame pandas в GeoDataFrame

Создайте карту с полем поиска

Отлично! Если вы хотите найти пользователей в Сан-Франциско, введите "Сан-Франциско" в поле поиска. Карта должна указывать вам приблизительное местоположение пользователей. Наведите курсор мыши на каждую метку, чтобы получить информацию о пользователе.

Если вас интересует сотрудничество, отправьте им электронное письмо!

Заключение

Поздравляю! Вы только что научились использовать top-github-scraper для получения лучших пользователей, участников и репозиториев на основе ключевых слов. Вы также узнали, как создать карту с полем поиска, чтобы найти пользователей в вашей области интересов!

Надеюсь, вы будете использовать это как инструмент для получения информации с GitHub и расширения своих связей!

Не стесняйтесь играть с top-github-scraper или кодом, предоставленным в этой статье.

Мне нравится писать о базовых концепциях data science и экспериментировать с различными алгоритмами и инструментами data science. Вы можете связаться со мной в LinkedIn и Twitter.

Поставьте звезду этому репозиторию, если вы хотите посмотреть коды для всех статей, которые я написал. Подпишитесь на меня в Medium, чтобы быть в курсе моих последних статей по data science, подобных этим:

Как создать фальшивые данные с помощью Faker

Вы можете либо собирать данные, либо создавать свои собственные данные

towardsdatascience.com

Найти общие слова в статье с помощью модуля Python Newspaper и NLTK

Пошаговое руководство по извлечению информации и поиску идей из газет с использованием newspaper3k и NLTK

towardsdatascience.com

Исследуйте и визуализируйте свою сеть LinkedIn с помощью Python и анализа настроений

Хотите оптимизировать свой профиль LinkedIn? Почему бы не использовать данные в своих целях?

towardsdatascience.com

Streamlit и spaCy: создайте приложение для предсказания настроений и сходства слов с минимальной областью...

Всего 10 строк кода!

towardsdatascience.com

Переведи введенный markdown код с английского на русский. Сохрани оригинальную разметку markdown и тэги на своих местах. Вместо слов scraping/scraper используй parsing/parser/parse. Возвращай только markdown код, без дополнительного текста