Хотите участвовать в проектах с открытым исходным кодом на Github (1/2)


Статический веб-скрейпинг с помощью BeautifulSoup

В последнее время я ищу проекты с открытым исходным кодом, в которые можно внести свой вклад. Идеальный способ начать вносить свой вклад — найти выпуск с пометкой хороший первый выпуск. Проблема в том, что вы должны пройтись по каждому репо и посмотреть в issues, чтобы увидеть, есть ли там репо с таким ярлыком, или перейти непосредственно к url https://github.com/{username}/{repo_name}/contribute.

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

ср. твит 👇

П-А
@_pacdev
Искал «хорошие первые вопросы» для внесения на @github, но не нашел, как их перечислить. Я создал очень простое веб-приложение для их перечисления. …t-issues-main-eqb5sc.streamlitapp.com надеюсь, это может помочь. Не стесняйтесь вносить свой вклад github.com/p-acDev/find-g… 🙏@streamlit #pythonprogramming #github #OpenSource
9:48 PM — 25 Aug 2022

Ниже описаны шаги по извлечению содержимого html-страниц:

Мы создаем объект экземпляра класса

soup = BeautifulSoup(html_content, 'html.parser')
Войдите в полноэкранный режим Выход из полноэкранного режима

html_content — это html-содержимое страницы, полученное с помощью команды requests.get(url), например

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

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

👉 Более подробная информация в репозитории

👉 Не стесняйтесь вносить свой вклад

Динамический веб-скрепинг

Есть одна загвоздка. Эта библиотека является инструментом для статических страниц. Вы не можете взаимодействовать с сайтом. Когда вы применяете фильтр по topic в github explore, вы получаете только список некоторых репозиториев с кнопкой load more в конце.

Пользователь github AlexMihalache99 указал мне на решение проблемы

Комментарий для #2

AlexMihalache99 прокомментировал

BeautifulSoup извлекает данные из HTML и XML файлов.

Это означает, что это статический способ извлечения данных. Поскольку он статичен, он не работает на веб-страницах, которые загружают результаты динамически, например, на вашей веб-странице, которая имеет кнопку «Загрузить еще» вместо строки с номером страницы.

Решением этой проблемы является использование библиотеки, которая динамически собирает данные.

Selenium — это такая библиотека, которая может удовлетворить ваши потребности.

Просмотр на GitHub

Обновление с помощью селена

Подробнее в будущем обновлении

Оцените статью
devanswers.ru
Добавить комментарий