์ฌ์ฉ์๊ฐ ๋ด์ค ํค์๋๋ฅผ ์ง์ ์
๋ ฅํ์ฌ ์ํ๋ ์ ๋ณด๋ฅผ ์ถ์ถํ ์ ์๋๋ก pyautogui
๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ ํ์
์ฐฝ์ ๋์์ค๋ค. ๋ํ ๋ด์ค๋ฅผ ๋จ์ผํ์ด์ง๋ง ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋, ์ฌ๋ฌ ํ์ด์ง๋ฅผ ํฌ๋กค๋งํ๊ธฐ ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ช ํ์ด์ง๊น์ง ํฌ๋กค๋งํ ๊ฒ์ธ์ง ๋ฌผ์ด๋ณด๋ ํ์
์ฐฝ๋ ๋์ธ ๊ฒ์ด๋ค.
requests์ beautifulsoup, pyautogui๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฒ์ ๋ฐํ์ผ๋ก ํฐ๋ฏธ๋์ ๋ด์ค์ ์ ๋ชฉ๊ณผ ๋งํฌ๊ฐ ์ถ๋ ฅ๋๋๋ก ์ฝ๋๋ฅผ ์ค๊ณํ๋ค.
pyautogui
keyword= pyautogui.prompt("๊ฒ์์ด๋ฅผ ์ ๋ ฅํ์ธ์.") lastpage= pyautogui.prompt("๋ง์ง๋ง ํ์ด์ง ๋ฒํธ๋ฅผ ์ ๋ ฅํ์ธ์.") pagenum=1 # ํ์ด์ง์ ์ด๊ธฐ๊ฐ์ 1ํ์ด์ง๋ก ์ค์
๐ ๋ฐ๋ณต๋ฌธ ํ์๋ถํฐ ์๊ณ ๊ฐ์
- for i in range (
์์, ๋, ๋จ๊ณ
)- ์๋ฅผ๋ค์ด, for i in range ( 1, 10, 2 ) // 1, 3, 5, 7, 9 ์ถ๋ ฅ
ํ์ด์ง๊ฐ ๋ฐ๋ณต๋๋ ๋ฐ๋ณต๋ฌธ
์ฌ์ฉ์์๊ฒ ์ ๋ ฅ๋ฐ๋ ํ์ด์ง ๋ฒํธ์ ๋ฐ๋ผ ์ฌ๋ฌ ํ์ด์ง๋ฅผ ํฐ๋ฏธ๋์ ์ถ๋ ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ค.
์ค๋ก์ง "ํ์ด์ง"๊ฐ ๋ฐ๋ณต๋๋ ๋ฐ๋ณต๋ฌธ
ํฐ๋ฏธ๋์์ ๋ช ํ์ด์ง์ธ์ง ๊ตฌ๋ถํ๊ธฐ ์ํ์ฌ, ๋ฐ๋ณต๋ฌธ ์์ print(f"===={pagenum}ํ์ด์ง์
๋๋ค====")
๊ตฌ๋ฌธ์ ๋ฃ์ด๋๋ค.
for i in range(1,int(lastpage)*10,10): print(f"============={pagenum}ํ์ด์ง์ ๋๋ค=============") response= requests.get(f"https://search.naver.com/search.naver?where=news&sm=tab_jum&query={keyword}&start={i}" ) html= response.text soup= BeautifulSoup(html,'html.parser') links= soup.select('.news_tit') pagenum= pagenum+1
์ฐ์ , ๋ฐ๋ณต๋ฌธ์ ๋ฒ์๋ฅผ ์ ํ๊ธฐ ์ํด ๋ค์ด๋ฒ์์ ๋ด์ค ํญ์ ๋ค์ด๊ฐ์ ํ์ด์ง ๋๊ธฐ๋ฉด url ํ๋ผ๋ฏธํฐ ๋ถ๋ถ์ ํ์ด์ง ๋ฒํธ๋ฅผ ๋ํ๋ด๋ start๋ผ๋ key
๊ฐ ์๋ค. start ์ value
๋ฅผ ๋ณด๋ฉด ๋ฐ์ ์ฌ์ง๊ณผ ๊ฐ๋ค.
( URL์ ์ดํด๋ฅผ ์ํด path์ ์ผ๋ถ parameter์ ์ญ์ ํ๋ค. ) ์ฒซ ๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด 1 ํ์ด์ง์์ start = 1
, ๋ ๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด 2 ํ์ด์ง์์ start = 11
, ์ธ ๋ฒ์งธ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด 3 ํ์ด์ง์์ start = 21
์ด๋ค. ๋ฐ๋ผ์ ํ์ด์ง ์๊ฐ ํ๋์ฉ ๋ ๋๋ง๋ค , start์ value
๋ 10์ฉ ๋๊ณ ์์์ ์ ์ ์๋ค.
for i in range(1,int(lastpage)*10,10):
๋ฐ๋ณต๋ฌธ์ ๋ฒ์๋, 1 ํ์ด์ง๋ถํฐ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํ์ด์ง ๊ฐ์ 10์ ๊ณฑํ ๋ฒ์๊น์ง๋ค. ์ด ๋ฒ์ ๋ด์์ 10์ฉ ๋จ๊ณ๊ฐ ์๋ค๋ ๋ป์ด๋ค. ๐ ์ด๋ฐ์์ผ๋ก! 1, 11, 21, 31, 41, ..., int(lastpage)*10
๐ค ์ int ( lastpage )์์ int๋ฅผ ์ฌ์ฉํ์์๊น?
- ์ฌ์ฉ์๊ฐ pyautogui์์ ๋ฌธ์์ด๋ก lastpage ๊ฐ์ ์ ๋ ฅํ์ผ๋ ์ซ์๋ก ํ๋ณํ์ ํด์ค ๊ฒ์ด๋ค.
๋ด์ค ๋ฆฌ์คํธ๊ฐ ๋ฐ๋ณต๋๋ ๋ฐ๋ณต๋ฌธ
for link in links: title =link.text #ํ๊ทธ ์์ ํ ์คํธ ์์๋ฅผ ๊ฐ์ ธ์จ๋ค url =link.attrs['href'] #href์ ์์ฑ๊ฐ์ ๊ฐ์ ธ์จ๋ค print(title, url)
ํฐ๋ฏธ๋์๋ ํ์ด์ง๋ง๋ค ๋ด์ค ์ ๋ชฉ๊ณผ url ์ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ์ถ๋ ฅ๋๋ค.