강의
"페이지네이션"(Pagination)은 많은 정보를 인덱스로 구분하는 기법 입니다.
# 다음 User-Agent를 추가해봅시다.
user_agent = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
# 필요한 라이브러리를 불러온 후, 요청을 진행해봅시다.
import requests
from bs4 import BeautifulSoup
# Pagination이 되어있는 질문 리스트의 제목을 모두 가져와봅시다.
# 과도한 요청을 방지하기 위해 1초마다 요청을 보내봅시다.
import time
for i in range(1, 6):
rest = requests.get("https://hashcode.co.kr/?page={}".format(i), user_agent)
soup = BeautifulSoup(res.text, "html.parser")
questions = soup.find_all("li", "question-list-item")
for question in questions:
print(question.find("div", "question").find("div", "top").h4.text)
time.sleep(0.5)
Hashcode 질문 가져오기
# 다음 User-Agent를 추가해봅시다.
user_agent = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
# 필요한 라이브러리를 불러온 후, 요청을 진행해봅시다.
import requests
from bs4 import BeautifulSoup
res = requests.get("https://hashcode.co.kr/", user_agent)
# 응답을 바탕으로 BeautifulSoup 객체를 생성해봅시다.
soup = BeautifulSoup(res.text, "html.parser")
# 질문의 빈도를 체크하는 dict를 만든 후, 빈도를 체크해봅시다.
import time
q_dict = {}
for i in range(1, 6):
rest = requests.get("https://hashcode.co.kr/?page={}".format(i), user_agent)
soup = BeautifulSoup(res.text, "html.parser")
questions = soup.find_all("li", "question-list-item")
for question in questions:
q = question.find("div", "question").find("div", "top").h4.text
if q in q_dict:
q_dict[q] += 1
else:
q_dict[q] = 1
time.sleep(0.5)
q_dict
'데브코스 TIL > Web Scrapping' 카테고리의 다른 글
Web Scraping 기초 3-2. 브라우저 자동화하기, Selenium (0) | 2023.10.26 |
---|---|
Web Scraping 기초 3-1. 동적 웹 페이지와의 만남 (0) | 2023.10.25 |
Web Scraping 기초 2-4. HTML의 Locator로 원하는 요소 찾기 (0) | 2023.10.25 |
Web Scraping 기초 2-3. 원하는 요소 가져오기 | (0) | 2023.10.25 |
Web Scraping 기초 2-2. HTML을 분석해주는 BeautifulSoup (0) | 2023.10.25 |