[chap4]웹 데이터 분석(beautifulsoup)

이재은·2024년 6월 9일

request vs urllib (라이브러리)

import requests
from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/')
soup = BeautifulSoup(res.content, 'html.parser')

data = soup.select('h4.card-text')
for item in data:
    print (item.get_text().strip())
 
#헤더스값 필요한 경우 (접속 차단시)
import requests
from bs4 import BeautifulSoup

url = "https://finance.naver.com/marketindex/"
header = {"User-Agent" : "유저정보"}
res = requests.get(url, headers = header)
soup = BeautifulSoup(res.content, "html.parser")
print(soup.prettify())
   
from urllib.request import urlopen
from bs4 import BeautifulSoup

res = urlopen('https://davelee-fun.github.io/')
soup = BeautifulSoup(res, 'html.parser')

data = soup.select('h4.card-text')
for item in data:
    print (item.get_text().strip())코드를 입력하세요

내용찾기

  1. 하나 찾기
1) soup.p 
2) soup.find("p")
  1. 태그 안의 속성값 찾기
1) soup.find("p", class_="inner-text second-item")
2) soup.find("p", {"class" : "inner-text second-item"})
3) soup.find_all("span", "value") #value 클래스
  1. 다중조건 : dict
soup.find("p", {"class" : "inner-text second-item", "id", : "first"})
  1. 여러개 반환 : find_all / select *리스트 형태 반환
    : soup html문서에서 a로 된거 다 찾기
soup.find_all("p") 
  1. 텍스트 가져오기
1) soup.find_all(id="pw-link")[0].text #리스트로 접근해서 text 불러오기
2) soup.find_all("p")[0].string
3) soup.find_all("p")[1].get_text()
  1. 주소값 가져오기
links = soup.find_all("a")
1) links[0].get("href") 
2) links[0]["herf"]

select / select_one

  1. 선택 기능
1) # : id 
*id 태그는 하나만 존재한다
2) . : class
<div class="head_info point_dn">
  <span class="value">1,373.00</span>
  <span class="txt_krw"><span class="blind"></span></span>
  <span class="change"> 2.00</span>
  <span class="blind">하락</span>

updown = exchangeList[0].select_one("div.head_info.point_dn>.blind").text 
*띄어쓰기는 클래스 두개라는 뜻이므로 .으로 연결해주기
*>.blind는 앞의것의 바로 밑의 것이라는 뜻
3) > 바로 밑

크롤링 기본

"html.paser" / "lxml"

17강. 하위페이지 분석

  1. regular expression
\n$10.2029 W. Chicago Ave'

\$\d+\.(\d+)?"
> 
1. 달러 필수
2. 숫자가 여러개 있을 수도
3. 숫자 뒤에는 꼭 .을 만남
3. .뒤에는 숫자 여러개가 있을수도 있고 없을 수도 있고


$10. 
len() = 4
  1. tqdum
profile
Dare to be an optimist

0개의 댓글