0
1

【requests】同期処理と非同期処理

Posted at

テストで初投稿。個人用のメモです。
今後もすこしづつ増やしていきます。よろしくお願いします。

画像サイトやツイッターなどのように、ページ全体がリクエストできない(設計によっては、タイムアウトしてしまったり、永遠スクロールする)場合は、非同期処理。
非同期処理によって、ページを処理することで、強制的に必要な静的コンテンツを獲得することができる。

同期処理

from requests_html import HTMLSession
from bs4 import BeautifulSoup

GAZOU_KEYWORD="Python 便利"
GAZOU_KEYWORD2=GAZOU_KEYWORD.replace(" ","%20").replace(" ","%20")

session = HTMLSession()
resp = session.get("http://img.jpg4.info/"+GAZOU_KEYWORD2+"/pic1.html")
resp = resp.html.url
resp

非同期処理

import time
from bs4 import BeautifulSoup
from requests_html import AsyncHTMLSession

JUPYTER LABで非同期使用する際に必要

import nest_asyncio
nest_asyncio.apply()

GAZOU_KEYWORD="Python 便利"
GAZOU_KEYWORD2=GAZOU_KEYWORD.replace(" ","%20").replace(" ","%20")

async def get_pyconjp_2017():
r = await asession.get("http://img.jpg4.info/"+GAZOU_KEYWORD2+"/pic1.html")
time.sleep (3)
return r

asession = AsyncHTMLSession()
results = asession.run(get_pyconjp_2017)
result = results[0]

soup = BeautifulSoup(result.content, "html.parser")

MAIN_KIJI = soup.find("div",attrs={"id":"picmain"})#記事部分
MAIN_KIJI

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1