pyparalllcurl

Een eenvoudige interface voor het ophalen van URL-bronnen in parallel zonder schroefdraden
Download nu

pyparalllcurl Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • BSD License
  • Naam uitgever:
  • Pete Warden
  • Uitgever website:
  • http://googlehotkeys.com/

pyparalllcurl Tags


pyparalllcurl Beschrijving

Een eenvoudige interface voor het ophalen van URL-bronnen parallel zonder draden PYPARALLLCURL is een Python-module die een eenvoudig te gebruiken interface biedt waarmee u meerdere krul-URL-ophaalgrijpen in Python kunt uitvoeren, zonder schroefdraad. Om het te testen, gaat u naar de opdrachtregel, CD naar deze map en run./test .pythis moet 100 zoekopdrachten uitvoeren via Google's API, de resultaten afdrukken. Om te zien wat voor soort prestatieverschil met parallelle verzoeken u krijgt, probeer dan de wanbetaling van 10 aanvragen die parallel lopen met behulp van het optionele scriptargument en timing hoe lang elk wordt gebruikt: tijd ./test.py 1 keer ./Test.py. Staat eerst alleen één verzoek om meteen te draaien, de oproepen te serialiseren. Ik zie dit ongeveer 100 seconden. De tweede run heeft 20 tijdens de vlucht tegelijk, en duurt 11 seconden! Wees gewaarschuwd, het is mogelijk om uw doelwit te overweldigen als u te veel verzoeken in één keer vuurt. U kunt eindigen met uw IP-verbannen om toegang te krijgen tot die server of andere API-limieten raken. De klasse is ontworpen om het gemakkelijk te maken om meerdere krulverzoeken parallel te maken, in plaats van te wachten totdat ze klaar zijn voordat u het volgende begint. Onder de motorkap gebruikt het Curl_Multi_Exec, maar aangezien ik die interface pijnlijk verwarrend zou vinden, wilde ik er een die overeenkwam met de taken die ik wilde uitvoeren. Om het te gebruiken, importeer Easy_Install Pycurl, Pyparallelcurl importeren en vervolgens het parallelcurl = parallelcurl (10 ) Het eerste argument voor de constructeur is het maximale aantal uitstekende ophaalservices om toe te staan voordat het wordt geblokkeerd om te wachten tot er een is om te voltooien. U kunt dit later wijzigen met behulp van SetMaxRequests () Het tweede optionele argument is een reeks krulopties in het formaat dat wordt gebruikt door Curl_SetOpt_array () Volgende, start een URL-fetch: parallelcurl.startretest ('http://example.com', on_request_done, {'Sykey': 'SOMEVALUE'}) Het eerste argument is het adres dat moet worden opgehaald, de tweede is de callback-functie die wordt uitgevoerd zodra het verzoek is gedaan, de derde is een 'cookie', die willekeurige gegevens kunnen bevatten Doorgegeven aan de callbackThis StartRequest-oproep zal onmiddellijk terugkeren, zolang minder dan het maximale aantal aanvragen uitstaand is. Zodra het verzoek is voltooid, wordt de callback-functie genoemd, bijvoorbeeld: on_request_done (inhoud, 'http://example.com', CH, {'somekey': 'SOMEVALUE'}) De callback zou vier argumenten moeten nemen. De eerste is een tekenreeks met de inhoud die is gevonden bij de URL. De tweede is de aangevraagde originele URL, de derde is de curl-handgreep van het verzoek dat kan worden opgevraagd om de resultaten te krijgen, en de vierde is de arbitraire 'Cookie'-waarde die u aan dit object hebt gekoppeld. Deze cookie bevat door de gebruiker gedefinieerde data.Since U hebt mogelijk een uitstaande aanvragen aan het einde van uw script, moet u bellenPparallelcurl.FinishallRequests () voordat u afsluit. Als u dat niet doet, kunnen de definitieve verzoeken niet onbewerkt blijven! Dit wordt eigenlijk ook de destructor van de klas geroepen, maar het is absoluut de beste praktijken om dit explicueren te noemen. Vereisten: · Python


pyparalllcurl Gerelateerde software