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

Python Web Scraping-запросы-HTML

В Интернете – это процесс извлечения данных с веб -сайтов. Чтобы уточнить свои навыки, я решил сделать мульти … Tagged с помощью Python, программирования, HTML, учебного пособия.

В Интернете – это процесс извлечения данных с веб -сайтов. Чтобы усовершенствовать свои навыки, я выбираю несколько проектов, используя некоторые из удивительных библиотек 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”