소가의 공부 이야기/파이썬

requests, BeautifulSoup 웹 크롤링 연습 중

smallpencil 2021. 1. 5. 13:55
반응형

 

저는 파이썬 전문가가 아닙니다. 지금 초보자이며 연습한 것을 작성하려고 합니다.

부족한 점이 있으면 언제든지 연락 부탁드릴께요~~ 좀더 좋은 방법 있으면 부탁 드리겠습니다.

 

www.enr.com/toplists/2019-Top-250-Global-Contractors-1

 

ENR 2019 Top 250 Global Contractors 1-100

 

www.enr.com

이 홈페이지에서 

1 부터 250 개의 글로벌 컨택터를 크롤링 하는 코딩입니다. 

 

import requests

import csv

from bs4 import BeautifulSoup

 

#CSV 파일 준비

f = open("enr_global_rank.csv""w",encoding="utf-8-sig", newline="")

writer = csv.writer(f)

 

title = "RANK 2019  RANK 2018   FIRM".split("\t")

 

writer.writerow(title)

#페이지 반복

for page in range(1,4):

 

    url = f"https://www.enr.com/toplists/2019-Top-250-Global-Contractors-{page}"

    res = requests.get(url)

    res.raise_for_status()

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

 

    ranks = soup.find("table",attrs={"class":"wdn_responsive_table flush-left"}).find("tbody").find_all("tr")

    for rank in ranks:

        rank_data = rank.find_all("td")

        rank_datas = [rank_data1.get_text().strip() for rank_data1 in rank_data]

        writer.writerow(rank_datas)

 

 

결과물은 잘 나옵니다.

만족 스럽습니다^^

728x90
반응형

'소가의 공부 이야기 > 파이썬' 카테고리의 다른 글

Python pillow 설치 안될 때...  (1) 2023.07.13