В Интернете – это процесс извлечения данных с веб -сайтов. Чтобы усовершенствовать свои навыки, я выбираю несколько проектов, используя некоторые из удивительных библиотек Python. Для этого проекта мы используем запросы-HTML, которые создатели описывают как HTML-анализ для людей.
Идея проекта очень минимальна, и цель состоит в том, чтобы получить основы использования библиотеки запросов-HTML. Мы собираемся вычистить все категории на веб -сайте thehackernews.com и получить все названия и ссылки последних статей. Чтобы все было просто, мы собираемся распечатать заголовки и ссылки на терминал.
Итак, давайте начнем с создания новой папки проекта (я назвал папку thn_scraper)
mkdir thn_scraper
Переодеться в папку и создать виртуальную среду Python
CD THN_SCRAPER
python3 -m venv env
Активируйте среду и установите пакеты
Source Env/Bin/Activate
PIP3 Установка запросов-HTML
Начнем с создания файла с именем main.py
nvim main.py
(Я использую Neovim, вы можете использовать любой редактор по вашему выбору)
from requests_html import HTMLSession session = HTMLSession() baseURL = 'https://thehackernews.com/search/label/' categories = ['data%20breach', 'Cyber%20Attack', 'Vulnerability', 'Malware']
Во -первых, мы импортируем функцию HTMLSession из библиотеки запросов_HTML, которую мы только что установили. Кроме того, мы инициализируем htmlsession (). Мы также храним URL -адрес веб -сайта переменной BASEURL. Мы также храним категории в списке.
class CategoryScrape(): catURL = '' r = '' def __init__(self, catURL, category): print(f'Scraping starting on Category : {category} \n') print(' ') self.catURL = catURL self.r = session.get(self.catURL)
Здесь мы создаем класс с именем CategoryScrape, который имеет функцию инициализации, которая принимает два параметра Caturl и категории. Мы также называем SESSION.GED ЗДЕСЬ и передаем Caturl. Затем ответ хранится на переменной с именем r.
def scrapeArticle(self): blog_posts = self.r.html.find('.body-post') for blog in blog_posts: storyLink = blog.find('.story-link', first=True).attrs['href'] storyTitle = blog.find('.home-title', first=True).text print(storyTitle) print(storyLink) print("\n")
Класс также имеет функцию с именем ScrapeArticle, которая имеет все навороты, чтобы проанализировать HTML и поиск списка статей, а затем соскребайте названия и ссылки отдельных статей. После того, как данные будут скрещены для каждой статьи, заголовок и ссылка распечатаны в терминале.
for category in categories: category = CategoryScrape(f'{baseURL}{category}', category) category.scrapeArticle()
Теперь, как только у нас будет класс и его функции, мы собираемся сделать цикл для каждой категории в списке с именем категорий. А в каждом цикле мы создадим новый объект с именем категории и инициализируем его с помощью класса, CategoryScrape. Мы также передаем URL и название категории. Затем мы называем функцию Scrape на созданном нами объекте. Итак, весь код, который нам нужен для проекта. Теперь мы можем продолжить и запустить проект, запустив команду в терминале
Python3 main.py
Vishnudileesh/thn_scraper
Счастливое кодирование, продолжайте кодировать Связаться со мной в Instagram
Оригинал: “https://dev.to/vishnudileesh/python-web-scraping-requests-html-4lg0”