Автор оригинала: Pankaj Kumar.
Здравствуйте, читатели! Здесь мы будем изучать Как царапать результаты поиска Google с использованием BeautifulSoup в питоне.
В этой статье мы посмотрим на одну из самых интересных концепций в Python – Scraping веб-сайта.
Итак, давайте начнем!
Что такое Scraping Web?
Время от времени, когда мы проводим через Интернет, мы встретимся с некоторыми данными, связанными с пользователем, которые мы верим, будут полезны для нас в будущем. И тогда мы стараемся скопировать его и сохранить его в буфер обмена каждый раз.
Теперь давайте проанализируем следующий сценарий
Мы часто нужны данные для анализа поведения определенных факторов с точки зрения моделирования данных. Таким образом, мы начинаем создавать набор данных с нуля путем копирования вставки данных.
Это когда Веб-соскоб или Веб ползет входит в картину.
Веб-соскоб – это простой способ выполнить повторяющуюся задачу копирования и вставки данных с веб-сайтов. С помощью веб-сосказывания мы можем выползриться/серфировать через веб-сайты и сохранять и представлять необходимые данные в индивидуальном формате.
Давайте теперь понять работу веб-соскабливания в следующем разделе.
Как работает Web Scraping?
Давайте попробуем понять функционирование Веб-соскоб Через несколько шагов:
- Изначально мы пишем кусок кода, который запрашивает сервер для информации в отношении веб-сайта, который мы хотим ползать или информацию, которую мы хотим скрепить в Интернете.
- Как браузер, код позволит нам загрузить исходный код веб-страницы.
- Кроме того, вместо визуализации страницы в том, что браузер делает, мы можем отфильтровать значения на основе тегов HTML и соскрести только необходимую информацию в индивидуальном порядке.
Для этого мы можем быстро и индивидуально загрузить исходный код веб-страницы.
Давайте теперь попробуем реализовать веб-соскоб в предстоящем разделе.
Массовые соскобы API
Если вы хотите создать какую-то услугу, соскорья навалочный поиск, шансы высоки, что Google блокирует вас из-за необычно большого количества запросов. В этом случае онлайн API вроде Zenserp это большая помощь.
Zenserp выполняет поиск по различным IPS и прокси и позволяет сосредоточиться на вашей логике, а не инфраструктуре. Это также облегчает вашу работу, поддерживая поиск изображений, поиск покупок, обратного поиска изображений, тенденции и т. Д. Вы можете попробуйте здесь Просто выпустите любой результат поиска и посмотрите на ответ JSON.
Реализация шагов, чтобы соскрести к результатам поиска Google, используя BeautifulSoup
Мы будем реализовать красивую подвиску, чтобы соскрести здесь результаты поиска Google здесь.
Beautifulsoup это библиотека Python, которая позволяет нам ползтировать веб-сайт и соскрести XML и HTML документы
, веб-страницы
, так далее.
Scrape Google Поиск результатов для индивидуальных поисков
Пример 1:
import requests from bs4 import BeautifulSoup import random text = 'python' url = 'https://google.com/search?q=' + text A = ("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36", ) Agent = A[random.randrange(len(A))] headers = {'user-agent': Agent} r = requests.get(url, headers=headers) soup = BeautifulSoup(r.text, 'lxml') for info in soup.find_all('h3'): print(info.text) print('#######')
Линия по линии Объяснения вышеуказанного кода:
- Импорт необходимых библиотек Чтобы использовать BeautifulSoup для соскабливания, нам нужно импортировать библиотеку через код ниже:
from bs4 import BeautifulSoup
Кроме того, нам нужен библиотека запросов Python для загрузки веб-страницы. Модуль запроса отправляет Получить запрос
на сервер, который позволяет загружать HTML содержимое необходимой веб-страницы.
import requests
2. Установите URL: Нам нужно предоставить URL
I.e. Домен, в котором мы хотим, чтобы наша информация была обысками и соскоблена. Здесь мы предоставили URL Google и добавили текст «Python», чтобы соскрести результаты в отношении.
3. Установка пользовательского агента: Нам нужно указать Заголовки агента пользователя
который позволяет серверу идентифицировать систему и приложение, браузеры, в которых мы хотим, чтобы данные были загружены, как показано ниже-
A = ("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36", )
4. Запросs.get (URL, заголовок) Отправляет запрос на веб-сервер, чтобы загрузить запрошенное HTML содержимое веб-страницы или результаты поиска.
5. Создайте объект Beautifulsoup с запрошенными данными из ‘ lxml
«Шассинг заголовков». « lxml Пакет должен быть установлен для приведенного ниже кода для работы.
soup = BeautifulSoup(r.text, 'lxml')
6. Кроме того, мы используем Object.find_all ('h3')
царапать и отображать все Заголовок 3
Содержание веб-браузера для Текст = ‘Python’ Отказ
Выход:
Welcome to Python.org ####### Downloads ####### Documentation ####### Python For Beginners ####### Python 3.8.5 ####### Tutorial ####### Python Software Foundation ####### Python (programming language) - Wikipedia ####### Python Tutorial - W3Schools ####### Introduction to Python - W3Schools ####### Python Tutorial - Tutorialspoint ####### Learn Python - Free Interactive Python Tutorial ####### Learn Python 2 | Codecademy #######
Результаты поиска Scrape из определенной веб-страницы
В этом примере мы соскоблили Значения тегов HTML
С сайта, как показано:
Пример 2:
import requests from bs4 import BeautifulSoup import random url = 'https://www.askpython.com/python/examples/python-predict-function' A = ("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36", ) Agent = A[random.randrange(len(A))] headers = {'user-agent': Agent} r = requests.get(url, headers=headers) soup = BeautifulSoup(r.content, 'lxml') title = soup.find('title') print("Title of the webpage--\n") print(title.string) search = soup.find_all('div',class_="site") print("Hyperlink in the div of class-site--\n") for h in search: print(h.a.get('href'))
Кроме того, мы соскоблили титул тег
Значения и все HREF
Значения, присутствующие в div tag
класса. Здесь значение класса отличается для каждого веб-сайта в соответствии со структурой кода.
Выход:
Title of the webpage-- Python predict() function - All you need to know! - AskPython Hyperlink in the div of class-site-- https://www.askpython.com/
Заключение
По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.
Для большего количества таких постов, связанных с Python, оставаться настроенными, а до тех пор, как потом, счастливое обучение !! 🙂.