Web Scraping 실습2

Q·2022년 8월 3일
0

Crawl

목록 보기
4/5
  • User Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67
import requests

url = "https://google.com"

headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
res = requests.get(url, headers)
res.raise_for_status()
  • 네이버 웹툰
import requests
from bs4 import BeautifulSoup

url ="https://comic.naver.com/webtoon/weekday"
res = requests.get(url)
res.raise_for_status()


soup = BeautifulSoup(res.text, "lxml")
print(soup.title)
print(soup.title.get_text())
print(soup.a)
print(soup.find("a"))
print(soup.find_all("a"))
print(soup.a.attrs)
print(soup.a["href"])
print(soup.a["onclick"])
# <a href="/mypage/myActivity" class="Nbtn_upload">웹툰 올리기</a>
print(soup.find("a", {"class":"Nbtn_upload"}))
print(soup.find("a", attrs = {"class":"Nbtn_upload"}))
print(soup.select("a.Nbtn_upload")) #find_all 유사
# 인기 순위 가져오기
rank1 = soup.find("li", {"class":"rank01"})
print(rank1.get_text())

rank2 = rank1.next_sibling.next_sibling
print(rank2.get_text())

rank3 = rank2.next_sibling.next_sibling
print(rank3.get_text())

rank4 = rank3.next_sibling.next_sibling
rank5 = rank4.next_sibling.next_sibling

rank4 = rank5.previous_sibling.previous_sibling
print(rank4.get_text())
rank1 = soup.find("li", {"class":"rank01"})
print(rank1.find_next_siblings("li"))

print(soup.find("a", text="사신소년"))
# a 태그로 시작해서 class가 title인 모든 text
import requests
from bs4 import BeautifulSoup

url ="https://comic.naver.com/webtoon/weekday"
res = requests.get(url)
res.raise_for_status()


soup = BeautifulSoup(res.text, "lxml")

cartoons = soup.find_all("a", {"class" : "title"})

for cartoon in cartoons:
    print(cartoon.get_text())
# 실시간 순위
import requests
from bs4 import BeautifulSoup

url ="https://comic.naver.com/webtoon/weekday"
res = requests.get(url)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

ol = soup.find("ol", {"id": "realTimeRankFavorite"})

lis = ol.find_all("li")

for li in lis:
    a = li.find("a")
    print(a.get_text())
  • 만화 한편
import requests
from bs4 import BeautifulSoup

url ="https://comic.naver.com/webtoon/list?titleId=675554"
res = requests.get(url)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")
# 만화 제목, 링크 가져오기 (한편)
td = soup.find("td", {"class":"title"})
a = td.find("a")
a.get_text()
#soup.find("td", {"class":"title"}).find("a").get_text()

td = soup.find("td", {"class":"title"})
a = td.find("a")
link = "https://comic.naver.com" + a["href"]
#"https://comic.naver.com" + soup.find("td", {"class":"title"}).td.find("a")["href"]
# 만화 제목, 링크 가져오기 (전체)
cartoons = soup.find_all("td", {"class":"title"})
for cartoon in cartoons:
    title = cartoon.find("a").get_text()
    link = "https://comic.naver.com" + cartoon.find("a")["href"]
    print(title, link)
# 평점 구하기
# 평점 한개
float(soup.find("div", {"class" : "rating_type"}).find("strong").get_text())
# 평점 전체 + 평균
total_rate = 0
ratings = soup.find_all("div", {"class" : "rating_type"})
for rating in ratings:
    rate = rating.find("strong").get_text()
    #print(rate)
    total_rate += float(rate)
print("평균 : ", total_rate/len(ratings))
  • 노트북 검색
import requests
from bs4 import BeautifulSoup

url = "https://www.coupang.com/np/search?q=%EB%85%B8%ED%8A%B8%EB%B6%81&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page=1&rocketAll=false&searchIndexingToken=&backgroundColor="

headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
res = requests.get(url, headers = headers)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")
# 제품 정보
soup.find_all("div", {"class":"name"})
[<div class="name">마이크로소프트 서피스 랩탑4 노트북 매트블랙 5EB-00020 (i7-1185G7 34.29cm WIN10 Home), 코어i7 11세대, 512GB, 16GB, WIN10 Home</div>,
 <div class="name">에이서 스위프트3 씬스틸러2 노트북 실버 SF314-43 (라이젠7-5700U 35.56cm), 윈도우 미포함, NVMe 512GB, 16GB</div>,
 <div class="name">삼성전자 - 2021 - 플러스2 - 15.6, NT550XDA-K14AW, 퓨어 화이트, 셀러론, 128GB, 8GB, WIN10 Pro</div>,
 <div class="name">삼성전자 플러스2 미스틱그레이 노트북 NT550XDA-K14AG (샐러론 6305 39.6cm WIN10 Pro), 미스틱 그레이, 셀러론, 128GB, 8GB, WIN10 Pro</div>,
 <div class="name">에이수스 슬레이트 그레이 노트북 D515UA -CP103 (라이젠5-5500U 39.6cm), 라이젠5 5세대, 512GB, 8GB, Free DOS</div>,
 <div class="name">초고속부팅SSD탑재!!LENOVO 노트북 ThinkPad X260 FULL HD[6세대 윈10 웹캠]</div>,
 <div class="name">LG전자 울트라 PC 화이트 노트북 13U70P-GA76K (라이젠7-4700U 33.78cm WIN10 Home), 라이젠7 4세대, 256GB, 16GB, WIN10 Home</div>,
 <div class="name">LG전자 울트라 화이트 노트북 13U70P-GR56K (라이젠5-4500U 33.7cm WIN10 Home), 라이젠5 4세대, 256GB, 8GB, WIN10 Home</div>,
 <div class="name">LG전자 10세대 코어i7 윈10탑재 17형 LG 그램 2020년형 17Z90N 그레이 정품키스킨 증정, 16GB, SSD 512GB, 포함</div>,
 <div class="name">LG전자 울트라 PC 화이트 노트북 15U50P-GR36K(i3-1115G4 39.6cm WIN10 Home), 15U50P-GR36K, 코어i3 11세대, 256GB, 8GB, WIN10 Home</div>,
 <div class="name">삼성전자 노트북9 METAL NT901X5L 가볍고 슬림한 1.29kg 코어i5 윈10 탑재, 포함, SSD 256GB, 8GB</div>,
 <div class="name">HP 2020 HP 15.6, 15s-fq2516TU, white snow, 코어i5 11세대, 512GB, 8GB, WIN10 Home</div>,
 <div class="name">HP 파빌리온 x360 14 Forest Teal 노트북 dw1053TU (i7-1165G7 35.56cm WIN10 Home), 코어i7 11세대, 512GB, 16GB, WIN10 Home</div>,
 <div class="name">에이수스 슬레이트 그레이 노트북 D515UA -CP103 (라이젠5-5500U 39.6cm), 라이젠5 5세대, 512GB, 8GB, Free DOS</div>,
 <div class="name">삼성전자 플러스2 퓨어화이트 노트북 NT550XDA-K14AW (샐러론 6305 39.6cm WIN10 Pro Edu), 퓨어 화이트, 셀러론, 378GB, 8GB</div>,
 <div class="name">이태원클라쓰북 그램스타일 노트북 풀패키지미개봉 NB141LTN41 8세대 14 IPS FHD 윈10탑재, 화이트, NB133LTN40 [32G+SD64G]</div>,
 <div class="name">LG전자 - 2020 - 울트라PC - 15, 15U40N-GR36K, 화이트, 라이젠3 4세대, 256GB, 8GB, WIN10 Home</div>,
 <div class="name">LG전자 2021 그램17 옵시디안블랙 노트북 17ZD90P-GX5BK (i5-1135G7 43.1cm), 17Z90P, 옵시디안 블랙, 코어i5 11세대, 256GB, 8GB, Free DOS</div>,
 <div class="name">삼성전자 갤럭시북 프로 NT950XDC-X71AB + 512GB (i7-1165G7 39.6cm WIN10 16GB 1TB GeForce MX450 미스틱블루), 미스틱 블루, 코어i7 11세대, 1024GB, WIN10 Home</div>,
 <div class="name">에이수스 노트북 이클립스 그레이 TUF FA706QM-HX007(라이젠7-5800H 43.94cm RTX 3060), FA706QM-HX007, 라이젠7 5세대, 512GB, 8GB, Free DOS</div>,
 <div class="name">LG전자 2021 그램 360 토파즈 그린 노트북 14TD90P-GX50K(i5-1135G7 35.5cm), 14TD90P-GX50K, 코어i5 11세대, 256GB, 8GB, Free DOS</div>,
 <div class="name">LG전자 울트라PC 노트북 13U50N-GR56K (i5-10210U 33.7cm UHD graphics WIN10), 윈도우 포함, 256GB, 8GB</div>,
 <div class="name">삼성전자 갤럭시북 플렉스 2 미스틱 블랙 노트북 NT950QDA-X71AB (i7-1165G7 39.6cm MX450 WIN10 Home), NT950QDA-X71OB, 코어i7 11세대, 1TB, 16GB, WIN10 Home</div>,
 <div class="name">삼성전자 갤럭시북 프로 NT950XDY-A38A + Win10설치 (i3-1115G4 39.6cm WIN10 8GB 256GB 미스틱실버), 미스틱 실버, 코어i3 11세대, WIN10 Home</div>,
 <div class="name">LG전자 울트라PC 화이트 노트북 13UD70P-GX70K (라이젠7-4700U 33.7cm) + 무선 마우스 + 마우스 패드 + HDMI, 라이젠7 4세대, 256GB, 16GB, Free DOS</div>,
 <div class="name">LG전자 울트라PC 화이트 노트북 13UD70P-GX70K (라이젠7-4700U 33.7cm WIN10 Home), 13UD70PGX70K, 라이젠7 4세대, 512GB, 16GB, WIN10 Home</div>,
 <div class="name">에이수스 ROG 제피러스 문라이트 화이트 게이밍 노트북 GA503QR-HQ017 (라이젠9-5900HS 39.6cm RTX 3070), 라이젠9 5세대, 1TB, 16GB, Free DOS</div>,
 <div class="name">기가바이트 AORUS 5 게이밍 노트북 블랙 MB i5 E (i5-10200H 39.6cm GTX 1650Ti), AORUS 5 MB I5 C, 코어i5 10세대, 512GB, 16GB, Free DOS</div>,
 <div class="name">MSI 게이밍 노트북 GF75 Thin 9SC-i7 파워팩, SSD 1TB, WINDOW10PRO, 32GB</div>,
 <div class="name">삼성전자 플러스2 미스틱그레이 노트북 NT550XDA-K14AG (샐러론 6305 39.6cm WIN10 Pro), 미스틱 그레이, 셀러론, 378GB, 8GB, WIN10 Pro</div>,
 <div class="name">대용량 SSD512G탑재! 가볍고 슬림한 삼성전자 노트북9 (코어i5 RAM 8G SSD 512G 무게1.29kg 15.6인치 윈도우10 실버), SSD 512GB</div>,
 <div class="name">LG전자 울트라기어 다크실버 노트북 17U70P-FA76K (i7-1165G7 43.1cm WIN10 Home), 다크 실버, 코어i7 11세대, 768GB, 16GB, WIN10 Home</div>,
 <div class="name">LG전자 울트라PC 15U50N-LR26K 노트북 (인텔 펜티엄 6405U 39.6cm WIN10 Home), 화이트, 256GB, 4GB, WIN10 Home</div>,
 <div class="name">삼성전자 플러스 퓨어 화이트 노트북 NT350XCR-AD3AW (i3-10110U), 코어i3 10세대, 256GB, 8GB, WIN10 Home</div>,
 <div class="name">MSI 모던 15 노트북 카본그레이 A11M-i7 (i7-1165G7 39.62cm), 윈도우 미포함, NVMe 512GB, 8GB</div>,
 <div class="name">레노버 아이디어패드 Platinum Grey 노트북 S150-11 81VT (Intel Celeron N4020 29.5cm WIN10 Home S), 셀러론, 64GB, 4GB</div>]
# 가격정보
div = soup.find("div", {"class":"price"})
div.find("strong" , {"class":"price-value"}).get_text()

#soup.find("div", {"class":"price"}).find("strong" , {"class":"price-value"}).get_text()
# 평점 정보
soup.find("div", {"class" : "rating-star"}).find("em").get_text()
'5.0'
# 리뷰수
soup.find("div", {"class" : "rating-star"}).find("span", {"class":"rating-total-count"}).get_text()
'(2)'
* 평점이 없거나 리뷰가 없는 제품 제외
* 평점이 >= 4.5 이상이고 리뷰수 >= 100 이상인 제품만 추출
* 특정 회사 제품 제외 또는 원하는 회사 제품만
* 출력양식 : 제품명, 가격, 평점, 리뷰수
import requests
from bs4 import BeautifulSoup

url = "https://www.coupang.com/np/search?q=%EB%85%B8%ED%8A%B8%EB%B6%81&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page=1&rocketAll=false&searchIndexingToken=&backgroundColor="

headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
res = requests.get(url, headers = headers)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

items = soup.find_all("li", {"class" : "search-product"})

rate = 0
review = 0
for item in items:
    # 광고 상품 제외
    ad_item = item.find("span", {"class" : "ad-badge-text"})
    
    if ad_item:
        #print("광고 상품 제외")
        continue
    
    # 제품명
    name  =  item.find("div", {"class" : "name"}).get_text()
    
    # 가격
    price = item.find("strong", {"class" : "price-value"}).get_text()
    
    # 평점
    rate = item.find("em", {"class" : "rating"})
    if rate:
        rate = float(rate.get_text())
    else:
        rate = 0
        
    # 리뷰수
    review = item.find("span", {"class" : "rating-total-count"})
    if review:
        review = int(review.get_text()[1:-1])
    else:
        review = 0
    
    
    if rate >= 4.5 and review >= 100 and ("삼성전자" in name or "LG" in name):    
        print("제품명 :" , name)
        print("가격 : ", price)
        print("평점 : ", rate)
        print("리뷰수 : ", review)
        print('*' * 100)
제품명 : 삼성전자 - 2021 - 플러스2 - 15.6, NT550XDA-K14AW, 퓨어 화이트, 셀러론, 128GB, 8GB, WIN10 Pro
가격 :  549,000
평점 :  5.0
리뷰수 :  237
****************************************************************************************************
제품명 : 삼성전자 플러스2 미스틱그레이 노트북 NT550XDA-K14AG (샐러론 6305 39.6cm WIN10 Pro), 미스틱 그레이, 셀러론, 128GB, 8GB, WIN10 Pro
가격 :  548,000
평점 :  5.0
리뷰수 :  186
****************************************************************************************************
제품명 : LG전자 울트라 PC 화이트 노트북 13U70P-GA76K (라이젠7-4700U 33.78cm WIN10 Home), 라이젠7 4세대, 256GB, 16GB, WIN10 Home
가격 :  1,066,990
평점 :  5.0
리뷰수 :  118
****************************************************************************************************
제품명 : 삼성전자 노트북9 METAL NT901X5L 가볍고 슬림한 1.29kg 코어i5 윈10 탑재, 포함, SSD 256GB, 8GB
가격 :  619,000
평점 :  4.5
리뷰수 :  741
****************************************************************************************************
제품명 : 삼성전자 플러스2 퓨어화이트 노트북 NT550XDA-K14AW (샐러론 6305 39.6cm WIN10 Pro Edu), 퓨어 화이트, 셀러론, 378GB, 8GB
가격 :  618,000
평점 :  5.0
리뷰수 :  237
****************************************************************************************************
제품명 : 삼성전자 갤럭시북 플렉스 2 미스틱 블랙 노트북 NT950QDA-X71AB (i7-1165G7 39.6cm MX450 WIN10 Home), NT950QDA-X71OB, 코어i7 11세대, 1TB, 16GB, WIN10 Home
가격 :  2,448,000
평점 :  5.0
리뷰수 :  127
****************************************************************************************************
제품명 : 삼성전자 플러스2 미스틱그레이 노트북 NT550XDA-K14AG (샐러론 6305 39.6cm WIN10 Pro), 미스틱 그레이, 셀러론, 378GB, 8GB, WIN10 Pro
가격 :  618,000
평점 :  5.0
리뷰수 :  186
****************************************************************************************************
제품명 : 대용량 SSD512G탑재! 가볍고 슬림한 삼성전자 노트북9 (코어i5 RAM 8G SSD 512G 무게1.29kg 15.6인치 윈도우10 실버), SSD 512GB
가격 :  639,000
평점 :  4.5
리뷰수 :  216
****************************************************************************************************
제품명 : 삼성전자 플러스 퓨어 화이트 노트북 NT350XCR-AD3AW (i3-10110U), 코어i3 10세대, 256GB, 8GB, WIN10 Home
가격 :  697,000
평점 :  5.0
리뷰수 :  603
****************************************************************************************************
* 1 ~ 5 page 까지 검색, 링크 정보도 같이 보이게
import requests
from bs4 import BeautifulSoup


for i in range(1, 6):
    url = "https://www.coupang.com/np/search?q=%EB%85%B8%ED%8A%B8%EB%B6%81&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page={0}&rocketAll=false&searchIndexingToken=&backgroundColor=".format(i)

    headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
    res = requests.get(url, headers = headers)
    res.raise_for_status()

    soup = BeautifulSoup(res.text, "lxml")

    items = soup.find_all("li", {"class" : "search-product"})

    rate = 0
    review = 0
    for item in items:
        # 광고 상품 제외
        ad_item = item.find("span", {"class" : "ad-badge-text"})

        if ad_item:
            #print("광고 상품 제외")
            continue

        # 제품명
        name  =  item.find("div", {"class" : "name"}).get_text()

        # 가격
        price = item.find("strong", {"class" : "price-value"}).get_text()

        # 평점
        rate = item.find("em", {"class" : "rating"})
        if rate:
            rate = float(rate.get_text())
        else:
            rate = 0

        # 리뷰수
        review = item.find("span", {"class" : "rating-total-count"})
        if review:
            review = int(review.get_text()[1:-1])
        else:
            review = 0


        if rate >= 4.5 and review >= 100 and ("삼성전자" in name or "LG" in name):    
            print("페이지({})".format(i))
            print("제품명 :" , name)
            print("가격 : ", price)
            print("평점 : ", rate)
            print("리뷰수 : ", review)
            print('*' * 100)
페이지(1)
제품명 : 삼성전자 - 2021 - 플러스2 - 15.6, NT550XDA-K14AW, 퓨어 화이트, 셀러론, 128GB, 8GB, WIN10 Pro
가격 :  549,000
평점 :  5.0
리뷰수 :  237
****************************************************************************************************
페이지(1)
제품명 : 삼성전자 플러스2 미스틱그레이 노트북 NT550XDA-K14AG (샐러론 6305 39.6cm WIN10 Pro), 미스틱 그레이, 셀러론, 128GB, 8GB, WIN10 Pro
가격 :  548,000
평점 :  5.0
리뷰수 :  186
****************************************************************************************************
페이지(1)
제품명 : LG전자 울트라 PC 화이트 노트북 13U70P-GA76K (라이젠7-4700U 33.78cm WIN10 Home), 라이젠7 4세대, 256GB, 16GB, WIN10 Home
가격 :  1,066,990
평점 :  5.0
리뷰수 :  118
****************************************************************************************************
페이지(1)
제품명 : 삼성전자 노트북9 METAL NT901X5L 가볍고 슬림한 1.29kg 코어i5 윈10 탑재, 포함, SSD 256GB, 8GB
가격 :  619,000
평점 :  4.5
리뷰수 :  742
****************************************************************************************************
페이지(1)
제품명 : 삼성전자 갤럭시북 플렉스 2 미스틱 블랙 노트북 NT950QDA-X71AB (i7-1165G7 39.6cm MX450 WIN10 Home), NT950QDA-X71OB, 코어i7 11세대, 1TB, 16GB, WIN10 Home
가격 :  2,448,000
평점 :  5.0
리뷰수 :  127
****************************************************************************************************
페이지(1)
제품명 : 삼성전자 플러스2 미스틱그레이 노트북 NT550XDA-K14AG (샐러론 6305 39.6cm WIN10 Pro), 미스틱 그레이, 셀러론, 378GB, 8GB, WIN10 Pro
가격 :  618,000
평점 :  5.0
리뷰수 :  186
****************************************************************************************************
페이지(1)
제품명 : 대용량 SSD512G탑재! 가볍고 슬림한 삼성전자 노트북9 (코어i5 RAM 8G SSD 512G 무게1.29kg 15.6인치 윈도우10 실버), SSD 512GB
가격 :  639,000
평점 :  4.5
리뷰수 :  216
****************************************************************************************************
페이지(1)
제품명 : 삼성전자 플러스 퓨어 화이트 노트북 NT350XCR-AD3AW (i3-10110U), 코어i3 10세대, 256GB, 8GB, WIN10 Home
가격 :  697,000
평점 :  5.0
리뷰수 :  603
****************************************************************************************************
페이지(2)
제품명 : 삼성전자 플러스 퓨어 화이트 노트북 NT350XCR-AD3AW (i3-10110U), 코어i3 10세대, 256GB, 16GB, Free DOS
가격 :  523,760
평점 :  5.0
리뷰수 :  603
****************************************************************************************************
페이지(2)
제품명 : LG전자 울트라PC 노트북 15U40N-GR56K (라이젠5-4500U 39.6cm WIN10 Home), 화이트, 라이젠5 4세대, 256GB, 8GB, WIN10 Home
가격 :  928,720
평점 :  5.0
리뷰수 :  261
****************************************************************************************************
페이지(2)
제품명 : 삼성전자 플러스 플래티넘 티탄 노트북 NT350XCR-AD3AS (i3-10110U), 코어i3, 256GB, 8GB, WIN10 Home
가격 :  697,000
평점 :  5.0
리뷰수 :  191
****************************************************************************************************
페이지(2)
제품명 : LG전자 울트라PC 화이트 노트북 15UD40N-GX56K (라이젠5-4500U 39.6cm), 라이젠5 4세대, 256GB, 8GB, Free DOS
가격 :  740,830
평점 :  5.0
리뷰수 :  218
****************************************************************************************************
페이지(2)
제품명 : 삼성전자 갤럭시북 플렉스 알파 노트북 NT750QCR-A38A (i3-10110U 39.6cm WIN10 Home), 머큐리 그레이, 코어i3 10세대, 256GB, 8GB, WIN10 Home
가격 :  1,359,000
평점 :  5.0
리뷰수 :  351
****************************************************************************************************
페이지(2)
제품명 : 삼성전자 플러스 퓨어 화이트 노트북 NT350XCR-AD3AW (i3-10110U), 코어i3 10세대, 256GB, 16GB, WIN10 Home
가격 :  766,000
평점 :  5.0
리뷰수 :  603
****************************************************************************************************
페이지(2)
제품명 : 삼성전자 플러스 플래티넘 티탄 노트북 NT350XCR-AD3AS (i3-10110U), 코어i3 10세대, 256GB, 16GB, Free DOS
가격 :  523,760
평점 :  5.0
리뷰수 :  191
****************************************************************************************************
페이지(3)
제품명 : 삼성전자 플러스2 퓨어화이트 노트북 NT550XDA-K78AW (i7-1165G7 39.6cm WIN10 Home), 퓨어 화이트, 코어i7 11세대, 256GB, 16GB, WIN10 Home
가격 :  1,017,530
평점 :  5.0
리뷰수 :  1003
****************************************************************************************************
페이지(4)
제품명 : 삼성전자 플러스 플래티넘 티탄 노트북 NT350XCR-AD3AS (i3-10110U), 코어i3 10세대, 256GB, 16GB, WIN10 Home
가격 :  766,000
평점 :  5.0
리뷰수 :  191
****************************************************************************************************
페이지(4)
제품명 : LG전자 그램17 스노우 화이트 노트북 17ZD90P-GX70K (i7-1165G7 43.1cm), 코어i7 11세대, 256GB, 8GB, Free DOS
가격 :  1,742,190
평점 :  5.0
리뷰수 :  128
****************************************************************************************************
페이지(4)
제품명 : 삼성전자 갤럭시북 플렉스 알파 노트북 NT750QCR-A38A (i3-10110U 39.6cm WIN10 Home), 머큐리 그레이, 코어i3 10세대, 256GB, 16GB, WIN10 Home
가격 :  1,399,000
평점 :  5.0
리뷰수 :  351
****************************************************************************************************
페이지(4)
제품명 : 삼성전자 플러스 플래티넘 티탄 노트북 NT350XCR-AD5AS (i5-10210U 39.6cm), 코어i5 10세대, 256GB, 16GB, WIN10 Home
가격 :  887,000
평점 :  5.0
리뷰수 :  351
****************************************************************************************************
페이지(5)
제품명 : LG전자 그램17 스노우 화이트 노트북 17ZD90P-GX70K (i7-1165G7 43.1cm), 코어i7 11세대, 256GB, 8GB, Free DOS
가격 :  1,742,190
평점 :  5.0
리뷰수 :  128
****************************************************************************************************
  • 다음사이트에서 이미지 가져오기
import requests
from bs4 import BeautifulSoup

url = "https://search.daum.net/search?w=tot&q=2020%EB%85%84%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&DA=MOR&rtmaxcoll=MOR"

headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
res = requests.get(url, headers = headers)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

images = soup.find_all("img", {"class" : "thumb_img"})
for i, image in enumerate(images):
    image_url = image["src"]
    image_res = requests.get(image_url)
    image_res.raise_for_status()
    
    with open("movie_{}".format(i), "wb") as f:
        f.write(image_res.content)
    
    
* 연도별 상위 5개 이미지를 2016~2020 (25)
import requests
from bs4 import BeautifulSoup

for year in range(2016, 2021):
    url = "https://search.daum.net/search?w=tot&q={0}%EB%85%84%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&DA=MOR&rtmaxcoll=MOR".format(year)

    headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
    res = requests.get(url, headers = headers)
    res.raise_for_status()

    soup = BeautifulSoup(res.text, "lxml")

    images = soup.find_all("img", {"class" : "thumb_img"})
    for i, image in enumerate(images):
        image_url = image["src"]
        image_res = requests.get(image_url)
        image_res.raise_for_status()

        with open("movie_{0}_{1}".format(year, i+1), "wb") as f:
            f.write(image_res.content)
            
        if i>=4 :
            break
  • 네이버 금융(시가총액)
import requests
from bs4 import BeautifulSoup
import csv

filename ="시가총액.csv"
f = open(filename, "w", encoding="utf-8", newline="")

writer = csv.writer(f)

url = "https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page=1"

headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
res = requests.get(url, headers = headers)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

table = soup.find("table", {"class" : "type_2"})
tbody = table.find("tbody")
rows = tbody.find_all("tr")

for row in rows:
    columns = row.find_all("td")
    if len(columns) <= 1:
        continue
    
    data = [column.get_text().strip() for column in columns]
    writer.writerow(data)
    
f.close()
import requests
from bs4 import BeautifulSoup


filename ="시가총액2.csv"
f = open(filename, "w", encoding="utf-8")

url = "https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page=1"

headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.67"}
res = requests.get(url, headers = headers)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

table = soup.find("table", {"class" : "type_2"})
tbody = table.find("tbody")
rows = tbody.find_all("tr")

for row in rows:
    columns = row.find_all("td")
    if len(columns) <= 1:
        continue
    
    for column in columns:
        f.write(column.get_text().strip())
        f.write(",")
    f.write("\n")
    
f.close()
profile
Data Engineer

0개의 댓글