ΠΠ°ΠΆΠ΅ΡΡΡ, Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ²Π΅Ρ json ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΠ²Π΅ΡΠ°.
Π― ΠΌΠΎΠ³ Π±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ json ΡΠ΅ΡΠ΅Π· response.json ()
response.json () Π΄Π°Π΅Ρ ΡΠΈΠΏ None
response.text () ΡΠΎΠΆΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π°Π΅Ρ
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎ:
wordpress_url = "https://kominherstel.nl/wp-json/wp/V2/pages/"
async def fetch(session, url):
async with session.get(url) as response:
return response
async def main(wordpress_url):
async with ClientSession() as session:
response = await fetch(session, wordpress_url)
print(await response.json())
loop = asyncio.get_event_loop()
loop.run_until_complete(main(wordpress_url))
Π Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ https://kominherstel.nl/wp-json/wp/V2/pages/ .
aiohttp == 2.3.10
ΠΠ‘: Ubuntu 16.04 LTS
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° async with session.get(...)
.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠΎΠ²Π΅Ρ!
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
wordpress_url = "https://kominherstel.nl/wp-json/wp/V2/pages/"
async def main(url):
async with ClientSession() as session:
async with session.get(url) as response:
print(await response.json())
print(await response.text())
print(response.text)
print(response.json)
loop = asyncio.get_event_loop()
loop.run_until_complete(main(wordpress_url))
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
<bound method ClientResponse.text of <ClientResponse(https://kominherstel.nl/wp-json/wp/V2/pages/) [200 OK]>
<CIMultiDictProxy('Date': 'Sat, 07 Apr 2018 20:41:13 GMT', 'Server': 'Apache', 'Vary': 'Cookie', 'X-Robots-Tag': 'noindex', 'Link': '<https://kominherstel.nl/wp-json/>; rel="https://api.w.org/"', 'X-Content-Type-Options': 'nosniff', 'Access-Control-Expose-Headers': 'X-WP-Total, X-WP-TotalPages', 'Access-Control-Allow-Headers': 'Authorization, Content-Type', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Cache-Control': 'no-store, no-cache, must-revalidate', 'Pragma': 'no-cache', 'X-WP-Total': '8', 'X-WP-TotalPages': '1', 'Allow': 'GET', 'Set-Cookie': 'PHPSESSID=9u9an4n6tqt7hkp431ukf5qkk5; path=/', 'Upgrade': 'h2c', 'Connection': 'Upgrade', 'Transfer-Encoding': 'chunked', 'Content-Type': 'application/json; charset=UTF-8')>
>
<bound method ClientResponse.json of <ClientResponse(https://kominherstel.nl/wp-json/wp/V2/pages/) [200 OK]>
<CIMultiDictProxy('Date': 'Sat, 07 Apr 2018 20:41:13 GMT', 'Server': 'Apache', 'Vary': 'Cookie', 'X-Robots-Tag': 'noindex', 'Link': '<https://kominherstel.nl/wp-json/>; rel="https://api.w.org/"', 'X-Content-Type-Options': 'nosniff', 'Access-Control-Expose-Headers': 'X-WP-Total, X-WP-TotalPages', 'Access-Control-Allow-Headers': 'Authorization, Content-Type', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Cache-Control': 'no-store, no-cache, must-revalidate', 'Pragma': 'no-cache', 'X-WP-Total': '8', 'X-WP-TotalPages': '1', 'Allow': 'GET', 'Set-Cookie': 'PHPSESSID=9u9an4n6tqt7hkp431ukf5qkk5; path=/', 'Upgrade': 'h2c', 'Connection': 'Upgrade', 'Transfer-Encoding': 'chunked', 'Content-Type': 'application/json; charset=UTF-8')>
>
ΠΠ΅ΡΠ²ΡΠ΅ 2 print (await response.json ()) ΠΈ print (await response.text ()) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ (https://docs.aiohttp.org/en/stable/client_quickstart.html#json-response-content) ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ json () Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ±ΠΎΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΈ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ URL ΡΠ²Π½ΠΎ Π΅ΡΡΡ json.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π°.
Π― ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠΏΡΡΡΠΈΠ» ΠΈΠ· Π²ΠΈΠ΄Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ΄Π° Π² Windows Π²ΠΌΠ΅ΡΡΠΎ Ubuntu. ΠΠ° ΠΌΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Ρ Windows Π²ΡΠ΅ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, ΠΊΠ°ΠΊ Ρ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π». ΠΡΠΎΠ±Π»Π΅ΠΌΠ°: Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» python 3.5.2 ΠΈ aiohttp Π²Π΅ΡΡΠΈΠΈ 2.3.10 Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Ρ Ubuntu. ΠΠΎΠ΅ ΠΏΠ»ΠΎΡ ΠΎΠ΅, Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ
ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ [Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ], ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅, ΡΡΠΎ Π² Ρ
ΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π·Π°ΡΡΠΎΠ½ΡΡΡ Π²Π°ΠΆΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠΈ Π²ΡΠ΄Π΅ΡΠΆΠΊΠΈ Π² ΡΡΠΎΡ [Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ].
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°
async with session.get(...)
.