Рубрики
Без рубрики

Сократите данные пользователя GitHub с помощью Python.

Когда я изучал массовое очищение, одна из идей, которая пришла мне в голову, – это скребок GitHub. Здесь я … помечен Python, Github, Scrape, Watercooler.

Когда я изучал массовое очищение, одна из идей, которая пришла мне в голову, – это скребок GitHub. Здесь я постараюсь описать каждый процесс.

Давайте начнем..

Мы должны сначала установить пару пакетов.

  • Beautifulsoup
  • Запросы
  • htmlparser
pip install requests
pip install html5lib
pip install beautifulsoup4
  • Затем открыть https://github.com/yourusername
  • Откройте Devtools.
  • Это то, что я вижу, когда открываю приборную панель и Devtools.
  • В то время как мы очищаем веб -сайт, нам нужны идентификатор элемента, имя класса или XPath, чтобы очистить его.

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

import requests
from bs4 import BeautifulSoup
import html5lib
  • Импортировать модули.
r=requests.get("https://github.com/fredysomy")
soup=BeautifulSoup(r.content,'html5lib')
  • Сделайте запрос на веб -сайт.
  • Разбор HTML получен как ответ в R.Content Использование BeautifulSoup и HTML5LIB.

  • Отсюда мы начинаем царапать.

namediv=soup.find("h1" ,class_="vcard-names pl-2 pl-md-0")
name=namediv.find_all('span')[0].getText()
u_name=namediv.find_all('span')[1].getText()
  • Здесь мы получаем весь элемент в элементе названия класса vcard-name pl-2 pl-md-0 "
  • Имя и имя пользователя находятся в элементе пролета в вышеупомянутом Div.
  • Мы назначили контент в переменную по имени.
  • Мы находим все элементы SPAN и выбираем (0: имя, 1: имя пользователя) и получаем текст с использованием функции getText ().
statstab=soup.find(class_="flex-order-1 flex-md-order-none mt-2 mt-md-0")
elements=statstab.find(class_="mb-3")
followers=elements.find_all('a')[0].find('span').getText().strip(' ')
following=elements.find_all('a')[1].find('span').getText().strip(' ')
totstars=elements.find_all('a')[2].find('span').getText().strip(' ')
  • Здесь происходит то же самое.
  • Последователи, следующие, Stargazers находятся внутри элемента класса имени Flex-Order-1 Flex-MD-None MT-2 MT-MD-0 и в MB-3 который внутри этого.

  • Давайте получим это и храним его в переменной элементов.

  • Получение пролета внутри Внутри элементов возвращает список.

    • Последователи имеют
    • Далее
    • Stargazer
elements.find_all('a')[2].find('span').getText().strip(' ')
  • Здесь мы получаем второй элемент индекса в элементе, а затем getText () от промежутка внутри него. Мы используем полоса ('') Чтобы удалить ненужные чистые пробелы в результате.
u_img=soup.find(class_="avatar avatar-user width-full border bg-white")['src']
  • Приведенный выше код дает тег изображения И мы получаем атрибут SRC.
repo_num=soup.find(class_="UnderlineNav-body").find('span',class_="Counter").getText()
  • Здесь мы получаем невыполнение пользователей Repos.

  • Это все, что вам нужно, чтобы очистить данные пользователя с помощью Python.

    Исходный код

import requests
from bs4 import BeautifulSoup
import html5lib
r=requests.get("https://github.com/fredysomy")
soup=BeautifulSoup(r.content,'html5lib')
namediv=soup.find("h1" ,class_="vcard-names pl-2 pl-md-0")
name=namediv.find_all('span')[0].getText()
u_name=namediv.find_all('span')[1].getText()
statstab=soup.find(class_="flex-order-1 flex-md-order-none mt-2 mt-md-0")
elements=statstab.find(class_="mb-3")
followers=elements.find_all('a')[0].find('span').getText().strip(' ')
following=elements.find_all('a')[1].find('span').getText().strip(' ')
totstars=elements.find_all('a')[2].find('span').getText().strip(' ')
u_img=soup.find(class_="avatar avatar-user width-full border bg-white")['src']
repo_num=soup.find(class_="UnderlineNav-body").find('span',class_="Counter").getText()
  • Идея состоит в том, что мы должны сделать программу для перемещения к элементу, который мы хотим, и выбрать необходимый элемент.
  • Ссылайте некоторые методы BeautifulSoup здесь

  • Я также сделал модуль PYPI для очистки GitHub. Смотрите Здесь И дайте звезду, если вам это нравится.

Если у вас есть какие -либо сомнения или вам нужно разъяснить, прокомментируйте ниже.

Оставайтесь с нами для части 2, где мы соскребят подробности репо пользователя.

Оригинал: “https://dev.to/fredysomy/scrape-github-users-details-with-python-3ce5”