Scraping mit Python 3.5 async / await

Weil es vorher so einen Artikel gab. http://postd.cc/fast-scraping-in-python-with-asyncio/ Lassen Sie uns dies mit der neuen Python 3.5-Syntax tun.

Ah, der ursprüngliche Artikel hat HTML verschrottet, aber ich wollte auf eine URL zugreifen, die gleichzeitig eine ähnliche Antwortmenge zurückgibt, also habe ich mich für RSS entschieden. Oh, es kratzt überhaupt nicht. Nun, es ist das gleiche, was ich tue ...

import asyncio
import aiohttp
import feedparser
import time

async def print_first_title(url):
    response = await aiohttp.request('GET', url)
    body = await response.text()
    d = feedparser.parse(body)
    print(d.entries[0].title)

rss = [] #Irgendwie eine Reihe von RSS-URLs. Ich habe ungefähr 10 Yahoo-Nachrichten gemacht

if __name__ == '__main__':
    start = time.time()
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait([print_first_title(url) for url in rss]))
    end = time.time()
    print("{0} ms".format((end - start) * 1000))
390.4871940612793 ms

Ist es sicher einfacher zu lesen? Aber allein damit scheint es, dass derjenige, der mit dem Dekorateur gearbeitet hat und von dem er nachgibt, eine solche Syntax hatte. Bisher habe ich nichts mehr als das. Ist das erstaunlich?

Eher wie im Originalartikel verwende ich eine Bibliothek namens aiohttp, um den Kommunikationsteil asynchron zu machen, aber das ist sehr praktisch! Ich wusste es nicht! !! !!

Geschwindigkeitsvergleich mit demjenigen, der wegen des Problems kein Collout verwendet

import urllib.request
import feedparser
import time

def print_first_title(url):
    response = urllib.request.urlopen(url)
    body = response.read()
    d = feedparser.parse(body)
    print(d.entries[0].title)

rss = []

if __name__ == '__main__':
    start = time.time()
    [print_first_title(url) for url in rss]
    end = time.time()
    print("{0} ms".format((end - start) * 1000))
1424.4353771209717 ms

Langsam! Das ist es!

Recommended Posts

Scraping mit Python 3.5 async / await
Scraping mit Python 3.5 Async-Syntax
Scraping mit Python
Python async / warte auf Kuriosität
Web Scraping mit Selenium (Python)
[Scraping] Python-Scraping
Verstecke Websockets asynchron / warte in Python3
[Python] Asynchrone Anfrage mit async / await
Leichter Thread-Leistungsbenchmark mit async / await, implementiert in Python 3.5
Python-Scraping-Memo
Python Scraping get_ranker_categories
Scraping mit Python
Scraping mit Python
[Anfänger] Leicht verständliches Python-Web-Scraping mit Google Colaboratory
Starten Sie Python
Spielen Sie Python async
Python Scraping eBay
Python Scraping get_title
Scraping von Websites mit JavaScript in Python
Python: Scraping Teil 1
[Python] Eine Tabelle mit Beautiful Soup kratzen
Python: Scraping Teil 2
Ich habe versucht, Web-Scraping mit Python und Selen
Ein Forscher eines Pharmaunternehmens fasste das Web-Scraping mit Python zusammen
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Bearbeiten Sie Redmine mit Python Redmine
Fibonacci-Sequenz mit Python
UnicodeEncodeError: 'cp932' während des Python-Scrapings
Grundlagen der Python-Scraping-Grundlagen
Scraping mit Python + PhantomJS
Datenbereinigung mit Python
Verwenden von Python # externen Paketen
WiringPi-SPI-Kommunikation mit Python
Altersberechnung mit Python
Suchen Sie Twitter mit Python
Schaben mit Selen [Python]
Scraping mit Python + PyQuery
Namensidentifikation mit Python
Hinweise zur Verwendung von Python-Unterprozessen
Versuchen Sie es mit Tweepy [Python2.7]
Scraping von RSS mit Python
Konvertieren Sie die asynchrone API im Callback-Stil in async / await in Python
Asynchrone Verarbeitung von Python ~ Asynchron vollständig verstehen und warten ~
Python-Memo mit perl-ternärem Operator
Mit Python abflachen
Ich habe versucht, mit Python zu kratzen
Speichern Sie Bilder mit Python3-Anforderungen
Web Scraping mit Python + JupyterLab
Schaben mit Selen in Python
Schaben mit Selen + Python Teil 1
[S3] CRUD mit S3 unter Verwendung von Python [Python]
[Python] Scraping in AWS Lambda
Python Super Anfänger versucht zu kratzen
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Schaben mit Chromedriver in Python
Festliches Scraping mit Python, Scrapy