Урок за скрапиране: Как да направим уеб-робот, използващ скрап?



В тази статия за Scrapy Tutorial ще се научите да правите уеб-робот с различни техники за извличане на данни и начини за съхраняване на данните в база данни.

Уеб изстъргването е ефективен начин за събиране на данни от уеб страниците, той се превърна в ефективен инструмент в . С различни библиотеки присъства за изстъргване в мрежата като , работата на учен по данни става оптимална. Scrapy е мощна уеб рамка, използвана за извличане, обработка и съхраняване на данни. Ще научим как можем да направим уеб робот в този урок за скрапиране, следват темите, обсъдени в този блог:

Какво е скрапиране?

Scrapy е безплатна рамка за обхождане на уеб с отворен код, написана на python. Първоначално е проектиран да изпълнява , но може да се използва и за извличане на данни с помощта на API. Той се поддържа от Scrapinghub ltd.





Scrapy е пълен пакет, когато става въпрос за изтегляне на уеб страници, обработка и съхраняване на данните в .

кръгла двойна към int java

Това е като електроцентрала, когато става въпрос за изстъргване на уеб с множество начини за изстъргване на уебсайт. Scrapy се справя с по-големи задачи с лекота, като изстъргва множество страници или група URL адреси за по-малко от минута. Той използва twister, който работи асинхронно, за да постигне паралелност.



Той предоставя договори за паяци, които ни позволяват да създаваме общи, както и дълбоки обхождащи. Scrapy също така осигурява конвейери за елементи за създаване на функции в паяк, които могат да извършват различни операции като заместване на стойности в данни и т.н.

скрап архитектура-скрап урок-edureka

Какво е уеб-робот?

Уеб-роботът е програма, която автоматично търси документи в мрежата. Те са програмирани предимно за повтарящи се действия за автоматизирано сърфиране.

Как работи?



Уеб-роботът е доста подобен на библиотекар. Той търси информацията в мрежата, категоризира информацията и след това индексира и каталогизира информацията за обходената информация, за да бъде извлечена и съхранена съответно.

Операциите, които ще бъдат извършени от робота, се създават предварително, след това роботът автоматично изпълнява всички тези операции, които ще създадат индекс. Тези индекси могат да бъдат достъпни чрез изходен софтуер.

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

  • Порталите за сравняване на цени търсят конкретни подробности за продукта, за да направят сравнение на цените на различни платформи, използвайки уеб робот.

  • Уеб-роботът играе много важна роля в областта на извличането на данни за извличане на информация.

  • Инструментите за анализ на данни използват уеб-роботи, за да изчислят и данните за прегледи на страници, входящи и изходящи връзки.

  • Роботите също служат на информационни центрове за събиране на данни като новинарски портали.

Как да инсталирам скрап?

За да инсталирате scrapy на вашата система, препоръчително е да го инсталирате на специален virtualenv. Инсталацията работи доста подобно на всеки друг пакет в python, ако използвате конда среда, използвайте следната команда за инсталиране на scrapy:

conda install -c conda-forge scrapy

можете също да използвате pip средата, за да инсталирате скрап,

пип инсталирайте скрап

Възможно е да има няколко зависимости за компилация в зависимост от вашата операционна система. Scrapy е написан на чист python и може да зависи от няколко пакета на python като:

  • lxml - Това е ефективен XML и HTML парсер.

  • parcel - HTML / XML библиотека за извличане, написана отгоре на lxml

  • W3lib - Това е многофункционален помощник за работа с URL адреси и кодиране на уеб страници

  • усукана - асинхронна мрежова рамка

  • криптография - Помага при различни нужди от мрежово ниво на сигурност

Стартиране на първия ви проект за скрап

За да стартирате първия си проект за скрапиране, отидете в директорията или местоположението, където искате да запазите вашите файлове и изпълнете следната команда

scrapy startproject име на проекта

След като изпълните тази команда, ще получите следните директории, създадени на това място.

  • Име на проекта/

    • scrapy.cfg: разгръща конфигурационен файл

  • Име на проекта/

    • __init__.py: python модулът на проектите

    • items.py: файл за дефиниция на проектни елементи

    • middlewares.py: проект на middlewares файл

    • pipelines.py: файл на тръбопроводи на проекта

    • settings.py: файл с настройки на проекта

  • паяци /

    • __init__.py: директория, в която по-късно ще поставите своите паяци

Правейки първия си паяк

Паяците са класове, които ние дефинираме и използваме, за да съберем информация от мрежата. Трябва да подклас scrapy.Spider и да дефинирате първоначалните заявки, които да направите.

Можете да напишете кода за вашия паяк в отделен файл на python и да го запазите в директорията projectname / spiders във вашия проект.

quotes_spider.py

импортиране на клас за скрапиране QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] за url в urls: добив scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% страница с отворена (име на файл, 'wb') като f: f.write (response.body) self.log ('запазен файл% s'% filename)

Както можете да видите, ние сме дефинирали различни функции в нашите паяци,

  • name: Той идентифицира паяка, той трябва да бъде уникален по време на проекта.

  • start_requests (): Трябва да върне итерация от заявки, с които паякът ще започне да обхожда.

  • parse (): Това е метод, който ще бъде извикан за обработка на отговора, изтеглен с всяка заявка.

Извличане на данни

Досега паякът не извлича никакви данни, а просто запази целия HTML файл. Паякът скрап обикновено генерира много речници, съдържащи данните, извлечени от страницата. Използваме ключовата дума yield в python при обратно извикване, за да извлечем данните.

импортиране на клас на скрапиране QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): за цитата в response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Когато стартирате този паяк, той ще изведе извлечените данни с дневника.

Съхраняване на данните

Най-простият начин за съхраняване на извлечените данни е чрез експортиране на емисии, използвайте следната команда, за да съхраните данните си.

scrap crawl quotes -o quotes.json

Тази команда ще генерира файл quotes.json, съдържащ всички изстъргани елементи, сериализирани в JSON .

Това ни води до края на тази статия, където научихме как можем да направим уеб-робот, използвайки scrapy в python, за да изстъргваме уебсайт и да извлечем данните в JSON файл. Надявам се, че сте наясно с всичко споделено с вас в този урок.

Ако сте намерили тази статия за „Урок за скрапиране“ подходяща, разгледайте доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Ние сме тук, за да ви помогнем при всяка стъпка по вашето пътуване и да изготвим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат . Курсът е създаден, за да ви даде начален старт в програмирането на Python и да ви обучи както за основните, така и за напредналите концепции на Python, заедно с различни като

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари в „Урок за скрапиране“ и нашият екип ще се радва да отговори.