В этой главе мы познакомимся с различными модулями Python, которые мы можем использовать для очистки веб-страниц.
Среды разработки Python, использующие virtualenv
Virtualenv — это инструмент для создания изолированных сред Python. С помощью virtualenv мы можем создать папку, содержащую все необходимые исполняемые файлы для использования пакетов, которые требуются нашему проекту Python. Это также позволяет нам добавлять и изменять модули Python без доступа к глобальной установке.
Вы можете использовать следующую команду для установки virtualenv —
(base) D:\ProgramData>pip install virtualenv Collecting virtualenv Downloading https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c3 5d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl (1.9MB) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 1.9MB 86kB/s Installing collected packages: virtualenv Successfully installed virtualenv-16.0.0
Теперь нам нужно создать каталог, который будет представлять проект с помощью следующей команды —
(base) D:\ProgramData>mkdir webscrap
Теперь войдите в этот каталог с помощью следующей команды —
(base) D:\ProgramData>cd webscrap
Теперь нам нужно инициализировать папку виртуальной среды по нашему выбору следующим образом:
(base) D:\ProgramData\webscrap>virtualenv websc Using base prefix 'd:\\programdata' New python executable in D:\ProgramData\webscrap\websc\Scripts\python.exe Installing setuptools, pip, wheel...done.
Теперь активируйте виртуальную среду с помощью команды, приведенной ниже. После успешной активации вы увидите его название в скобках слева.
(base) D:\ProgramData\webscrap>websc\scripts\activate
Мы можем установить любой модуль в этой среде следующим образом —
(websc) (base) D:\ProgramData\webscrap>pip install requests Collecting requests Downloading https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69 c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (9 1kB) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 92kB 148kB/s Collecting chardet<3.1.0,>=3.0.2 (from requests) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca 55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133 kB) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 143kB 369kB/s Collecting certifi>=2017.4.17 (from requests) Downloading https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee6364 4d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl (147kB) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 153kB 527kB/s Collecting urllib3<1.24,>=1.21.1 (from requests) Downloading https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c5 3851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133k B) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 143kB 517kB/s Collecting idna<2.8,>=2.5 (from requests) Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746 a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 61kB 339kB/s Installing collected packages: chardet, certifi, urllib3, idna, requests Successfully installed certifi-2018.8.24 chardet-3.0.4 idna-2.7 requests-2.19.1 urllib3-1.23
Для деактивации виртуальной среды мы можем использовать следующую команду:
(websc) (base) D:\ProgramData\webscrap>deactivate (base) D:\ProgramData\webscrap>
Вы можете видеть, что (websc) был деактивирован.
Модули Python для веб-очистки
Соскреб в Интернете — это процесс создания агента, который может автоматически извлекать, анализировать, загружать и систематизировать полезную информацию из Интернета. Другими словами, вместо того, чтобы вручную сохранять данные с веб-сайтов, программное обеспечение для очистки веб-страниц будет автоматически загружать и извлекать данные с нескольких веб-сайтов в соответствии с нашими требованиями.
В этом разделе мы собираемся обсудить полезные библиотеки Python для очистки веб-страниц.
Запросы
Это простая веб-библиотека Python. Это эффективная библиотека HTTP, используемая для доступа к веб-страницам. С помощью запросов мы можем получить необработанный HTML-код веб-страниц, который затем можно проанализировать для получения данных. Перед использованием запросов , давайте разберемся с его установкой.
Установка запросов
Мы можем установить его либо в нашей виртуальной среде, либо в глобальной установке. С помощью команды pip мы можем легко установить его следующим образом:
(base) D:\ProgramData> pip install requests Collecting requests Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69 c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl Requirement already satisfied: idna<2.8,>=2.5 in d:\programdata\lib\sitepackages (from requests) (2.6) Requirement already satisfied: urllib3<1.24,>=1.21.1 in d:\programdata\lib\site-packages (from requests) (1.22) Requirement already satisfied: certifi>=2017.4.17 in d:\programdata\lib\sitepackages (from requests) (2018.1.18) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in d:\programdata\lib\site-packages (from requests) (3.0.4) Installing collected packages: requests Successfully installed requests-2.19.1
пример
В этом примере мы делаем запрос GET HTTP для веб-страницы. Для этого нам нужно сначала импортировать библиотеку запросов следующим образом:
In [1]: import requests
В этой следующей строке кода мы используем запросы для выполнения HTTP-запросов GET для URL: https://authoraditiagarwal.com/ , отправляя запрос GET.
In [2]: r = requests.get('https://authoraditiagarwal.com/')
Теперь мы можем получить содержимое с помощью свойства .text следующим образом:
In [5]: r.text[:200]
Обратите внимание, что в следующем выводе мы получили первые 200 символов.
Out[5]: '<!DOCTYPE html>\n<html lang="en-US"\n\titemscope \n\titemtype="http://schema.org/WebSite" \n\tprefix="og: http://ogp.me/ns#" >\n<head>\n\t<meta charset ="UTF-8" />\n\t<meta http-equiv="X-UA-Compatible" content="IE'
Urllib3
Это еще одна библиотека Python, которую можно использовать для извлечения данных из URL-адресов, аналогичных библиотеке запросов . Вы можете прочитать больше об этом в его технической документации по адресу https://urllib3.readthedocs.io/en/latest/ .
Установка Urllib3
Используя команду pip , мы можем установить urllib3 либо в нашей виртуальной среде, либо в глобальной установке.
(base) D:\ProgramData>pip install urllib3 Collecting urllib3 Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c5 3851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl Installing collected packages: urllib3 Successfully installed urllib3-1.23
Пример: выскабливание с использованием Urllib3 и BeautifulSoup
В следующем примере мы очищаем веб-страницу с помощью Urllib3 и BeautifulSoup . Мы используем Urllib3 вместо библиотеки запросов для получения необработанных данных (HTML) с веб-страницы. Затем мы используем BeautifulSoup для анализа этих HTML-данных.
import urllib3 from bs4 import BeautifulSoup http = urllib3.PoolManager() r = http.request('GET', 'https://authoraditiagarwal.com') soup = BeautifulSoup(r.data, 'lxml') print (soup.title) print (soup.title.text)
Это вывод, который вы увидите при запуске этого кода —
<title>Learn and Grow with Aditi Agarwal</title> Learn and Grow with Aditi Agarwal
Селен
Это пакет автоматизированного тестирования с открытым исходным кодом для веб-приложений в разных браузерах и на разных платформах. Это не единственный инструмент, а набор программного обеспечения. У нас есть привязки селена для Python, Java, C #, Ruby и JavaScript. Здесь мы собираемся выполнить очистку веб-страниц, используя селен и его привязки Python. Вы можете узнать больше о Selenium с Java по ссылке Selenium .
Привязки Selenium Python предоставляют удобный API для доступа к Selenium WebDrivers, таким как Firefox, IE, Chrome, Remote и т. Д. В настоящее время поддерживаются версии Python 2.7, 3.5 и выше.
Установка Selenium
Используя команду pip , мы можем установить urllib3 либо в нашей виртуальной среде, либо в глобальной установке.
pip install selenium
Поскольку селен требует драйвера для взаимодействия с выбранным браузером, нам нужно скачать его. В следующей таблице показаны разные браузеры и их ссылки для загрузки.
Хром |
|
край |
|
Fire Fox |
|
Сафари |
Хром
https://sites.google.com/a/chromium.org/
край
https://developer.microsoft.com/
Fire Fox
Сафари
пример
В этом примере показана очистка веб-страниц с использованием селена. Он также может быть использован для тестирования, которое называется тестирование селена.
После загрузки конкретного драйвера для указанной версии браузера нам нужно заняться программированием на Python.
Во-первых, необходимо импортировать веб-драйвер из селена следующим образом —
from selenium import webdriver
Теперь укажите путь к веб-драйверу, который мы скачали в соответствии с нашим требованием —
path = r'C:\\Users\\gaurav\\Desktop\\Chromedriver' browser = webdriver.Chrome(executable_path = path)
Теперь укажите URL, который мы хотим открыть в этом веб-браузере, который теперь контролируется нашим скриптом Python.
browser.get(' https://authoraditiagarwal.com/leadershipmanagement ')
Мы также можем очистить определенный элемент, указав xpath, как указано в lxml.
browser.find_element_by_xpath('/html/body').click()
Вы можете проверить браузер, управляемый скриптом Python, для вывода.
Scrapy
Scrapy — это быстрый веб-фреймворк с открытым исходным кодом, написанный на Python, который используется для извлечения данных с веб-страницы с помощью селекторов на основе XPath. Scrapy был впервые выпущен 26 июня 2008 года по лицензии BSD, а Milestone 1.0 был выпущен в июне 2015 года. Он предоставляет нам все инструменты, необходимые для извлечения, обработки и структурирования данных с веб-сайтов.
Установка Scrapy
Используя команду pip , мы можем установить urllib3 либо в нашей виртуальной среде, либо в глобальной установке.
pip install scrapy
Для более детального изучения Scrapy вы можете перейти по ссылке Scrapy