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

Примеры Python Beautifulsoup

Введение В этом руководстве мы рассмотрим множество примеров использования библиотеки BeautifulSoup в Python. Для лучшего понимания давайте следуем несколько рекомендаций / шагов, которые помогут нам упростить вещи и создавать эффективный код. Пожалуйста, посмотрите на каркас / шаги, которые мы собираемся следовать во всех примерах … Примеры Python Beautifulsoup Подробнее »

Автор оригинала: Shubham Sayon.

Вступление

В этом руководстве мы рассмотрим многочисленные примеры использования Beautifulsoup Библиотека в Python. Для лучшего понимания давайте следуем несколько рекомендаций/шагов, которые помогут нам упростить вещи и создавать эффективный код. Пожалуйста, посмотрите на рамки/шаги, которые мы собираемся следовать во всех примерах, упомянутых ниже:

  1. Осмотрите HTML и CSS код за сайте/веб-страница.
  2. Импортируйте необходимые библиотеки.
  3. Создать Пользовательский агент (По желанию).
  4. Отправить Получить () Запрос и извлечь содержимое веб-страницы.
  5. Проверьте Код состояния после получения ответа.
  6. Создайте красивый объект супа и определите парсер.
  7. Внедрить вашу логику.

Отказ от ответственности: Эта статья считает, что вы проходили основные концепции Scraping Web. Единственная цель этой статьи состоит в том, чтобы перечислить и продемонстрировать примеры Scraping Web. Упомянутые примеры были созданы только для образовательных целей. Если вы хотите узнать основные концепции перед погружением в примеры, пожалуйста, следуйте руководству по эта ссылка Отказ

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

Пример 1: соскреб на примере веб-страницы

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

Код для Scrape, чтобы данные из таблицы в вышеуказанной веб-странице приведены ниже.

# 1. Import the necessary LIBRARIES
import requests
from bs4 import BeautifulSoup

# 2. Create a User Agent (Optional)
headers = {"User-Agent": "Mozilla/5.0 (Linux; U; Android 4.2.2; he-il; NEO-X5-116A Build/JDQ39) AppleWebKit/534.30 ("
                         "KHTML, like Gecko) Version/4.0 Safari/534.30"}

# 3. Send get() Request and fetch the webpage contents
response = requests.get("https://shubhamsayon.github.io/python/demo_html.html", headers=headers)
webpage = response.content

# 4. Check Status Code (Optional)
# print(response.status_code)

# 5. Create a Beautiful Soup Object
soup = BeautifulSoup(webpage, "html.parser")

# 6. Implement the Logic.
for tr in soup.find_all('tr'):
    topic = "TOPIC: "
    url = "URL: "
    values = [data for data in tr.find_all('td')]
    for value in values:
        print(topic, value.text)
        topic = url
    print()

Выход:

TOPIC:  __str__ vs __repr__ In Python
URL:  https://blog.finxter.com/python-__str__-vs-__repr__/

TOPIC:  How to Read a File Line-By-Line and Store Into a List?
URL:  https://blog.finxter.com/how-to-read-a-file-line-by-line-and-store-into-a-list/

TOPIC:  How To Convert a String To a List In Python?
URL:  https://blog.finxter.com/how-to-convert-a-string-to-a-list-in-python/

TOPIC:  How To Iterate Through Two Lists In Parallel?
URL:  https://blog.finxter.com/how-to-iterate-through-two-lists-in-parallel/

TOPIC:  Python Scoping Rules â€" A Simple Illustrated Guide
URL:  https://blog.finxter.com/python-scoping-rules-a-simple-illustrated-guide/

TOPIC:  Flatten A List Of Lists In Python
URL:  https://blog.finxter.com/flatten-a-list-of-lists-in-python/

✨ Видео прохождение вышеуказанного кода:

Пример 2: Скаронные данные с лидеров Finxter

В этом примере показано, как мы можем легко соскрести данные с помощью панели инструментов Finxter, которая перечисляет ELOS/точки. Изображение, приведенное ниже, изображает данные, которые мы собираемся извлечь из https://app.finxter.com Отказ

Код для Scrape, чтобы данные из таблицы в вышеуказанной веб-странице приведены ниже.

# import the required libraries
import requests
from bs4 import BeautifulSoup

# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) "
                         "Chrome/31.0.1650.0 Safari/537.36"}

# get() Request
response = requests.get("https://app.finxter.com/learn/computer/science/", headers=headers)

# Store the webpage contents
webpage = response.content

# Check Status Code (Optional)
print(response.status_code)

# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")
# The logic
for table in soup.find_all('table',class_='w3-table-all',limit=1):
    for tr in table.find_all('tr'):
        name = "USERNAME: "
        elo = "ELO: "
        rank = "RANK: "
        for td in tr.find_all('td'):
            print(name,td.text.strip())
            name = elo
            elo = rank
        print()

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

✨ Видео прохождение выше Кода:

Пример 3: Скрепление бесплатной доски работы Python

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

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

import requests
from bs4 import BeautifulSoup

# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) "
                         "Chrome/31.0.1650.0 Safari/537.36"}

# get() Request
response = requests.get("http://pythonjobs.github.io/", headers=headers)

# Store the webpage contents
webpage = response.content

# Check Status Code (Optional)
# print(response.status_code)

# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")

# The logic
for job in soup.find_all('section', class_='job_list'):
    title = [a for a in job.find_all('h1')]
    for n, tag in enumerate(job.find_all('div', class_='job')):
        company_element = [x for x in tag.find_all('span', class_='info')]
        print("Job Title: ", title[n].text.strip())
        print("Location: ", company_element[0].text.strip())
        print("Company: ", company_element[3].text.strip())
        print()

Выход:

Job Title: Software Engineer (Data Operations)
Location:  Sydney, Australia / Remote
Company:  Autumn Compass

Job Title: Developer / Engineer
Location:  Maryland / DC Metro Area
Company:  National Institutes of Health contracting company.

Job Title: Senior Backend Developer (Python/Django)
Location:  Vienna, Austria
Company:  Bambus.io

✨ Видео прохождение выше Кода:

Пример 4: Скаронные данные из онлайн-магазина книги

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

Изображение, приведенное ниже, изображает веб-страницу, от которого мы собираемся царапать данные.

Приведенный ниже код демонстрирует, как извлечь:

  • Имя каждой книги,
  • Имя автора,
  • Цена каждой книги.
# import the required libraries
import requests
from bs4 import BeautifulSoup

# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (Linux; U; Android 4.2.2; he-il; NEO-X5-116A Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"}

# get() Request
response = requests.get(
    "https://www.alibris.com/search/books/subject/Fiction", headers=headers)

# Store the webpage contents
webpage = response.content

# Check Status Code (Optional)
# print(response.status_code)

# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")

# The logic
for parent in soup.find_all('ul',{'class':'primaryList'}):
    for n,tag in enumerate(parent.find_all('li')):
        title = [x for x in tag.find_all('p', class_='bookTitle')]
        author = [x for x in tag.find_all('p', class_='author')]
        price = [x for x in tag.find_all('a', class_='buy')]
        for item in title:
            print("Book: ",item.text.strip())
        for item in author:
            author = item.text.split("\n")
            print("AUTHOR: ",author[2])
        for item in price:
            if 'eBook' in item.text.strip():
                print("eBook PRICE: ", item.text.strip())
            else:
                print("PRICE: ", item.text.strip())
        print()

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

✨ Видео прохождение выше Кода:

Пример 5: Скаркость с использованием относительных ссылок

До сих пор мы видели примеры, где мы выскабливаем данные прямо из веб-страницы. Теперь мы узнаем, как мы можем извлечь данные с веб-сайтов, которые имеют гиперссылки. В этом примере мы будем извлечь данные из https://codingbat.com/ Отказ Давайте попробуем извлечь все вопросы, перечисленные под Python Категория в codingbat.com Отказ

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

Решение:

# 1. Import the necessary LIBRARIES
import requests
from bs4 import BeautifulSoup

# 2. Create a User Agent (Optional)
headers = {"User-Agent": "Mozilla/5.0 (Linux; U; Android 4.2.2; he-il; NEO-X5-116A Build/JDQ39) AppleWebKit/534.30 ("
                         "KHTML, like Gecko) Version/4.0 Safari/534.30"}

# 3. Send get() Request and fetch the webpage contents
response = requests.get('http://codingbat.com/python', headers=headers)
webpage = response.content

# 4. Check Status Code (Optional)
# print(response.status_code)

# 5. Create a Beautiful Soup Object
soup = BeautifulSoup(webpage, "html.parser")

# The Logic
url = 'https://codingbat.com'
div = soup.find_all('div', class_='summ')
links = [url + div.a['href'] for div in div]
for link in links:
    #print(link)
    second_page = requests.get(link, headers={
        "User-Agent": "Mozilla/5.0 (Linux; U; Android 4.2.2; he-il; NEO-X5-116A Build/JDQ39) AppleWebKit/534.30 ("
                      "KHTML, like Gecko) Version/4.0 Safari/534.30"})
    sub_soup = BeautifulSoup(second_page.content, 'html.parser')
    div = sub_soup.find('div', class_='tabc')
    question = [url + td.a['href'] for td in div.table.find_all('td')]

    for link in question:
        third_page = requests.get(link)
        third_soup = BeautifulSoup(third_page.content, 'html.parser')
        indent = third_soup.find('div', attrs={'class': 'indent'})
        problem = indent.table.div.string
        siblings_of_statement = indent.table.div.next_siblings
        demo = [sibling for sibling in siblings_of_statement if sibling.string is not None]
        print(problem)
        for example in demo:
            print(example)

        print("\n")

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

Вывод

Я надеюсь, что вам понравились примеры, обсуждаемые в статье. Пожалуйста, Подписаться и Оставайтесь настроиться Для получения дополнительных статей и содержимого видео в будущем!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

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

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: