728x90
반응형
Web Scraping
웹 상의 데이터를 추출하는 것
네이버 뉴스 기사의 페이지 넘버 가져오기
main.py
from naver import extract_naver_pages, extract_naver_news
last_naver_pages = extract_naver_pages()
naver_news = extract_naver_news(last_naver_pages)
naver.py
import requests
from bs4 import BeautifulSoup
URL = "https://search.naver.com/search.naver?&where=news&query=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90&sm=tab_pge&sort=1&photo=0&field=0&reporter_article=&pd=6&ds=2020.06.23&de=2020.12.20&docid=&nso=so:dd,p:6m,a:all&mynews=0"
def extract_naver_pages():
result = requests.get(URL)
soup = BeautifulSoup(result.text, "html.parser")
# find로 찾은 결과를 sc_page_inner 변수에 넣고 리스트를 만들어 pages 변수에 넣어주기
sc_page_inner = soup.find("div", {"class": "sc_page_inner"}) #페이징이 있는 클래스 찾기
links = sc_page_inner.find_all('a') #페이지를 알기 위해 모든 a태그 찾기 (여기서 pages는 list임)
pages = []
for link in links:
pages.append(int(link.string))
max_page = pages[-1]
return max_page
def extract_naver_news(last_page):
news = []
for page in range(last_page):
result = requests.get(f"{URL}&start={page*10}&refresh_start=0")
print(result.status_code)
return news
반응형
'프로그래밍 > Python' 카테고리의 다른 글
Web Scraping3(CSV 파일에 저장하기) (0) | 2020.12.25 |
---|---|
Web Scraping2 (0) | 2020.12.24 |
web Scrapping을 위한 requests와 BeautifulSoup 설치 (0) | 2020.12.23 |
개발환경 세팅 (0) | 2020.12.23 |
Modules (0) | 2020.12.22 |