python/웹크롤링5 [Python] bs4 - get_text(), string 개요 BeautifulSoup4, bs4 get_text(), string 모두 태그 내부의 문자열을 얻는데 사용된다. 문자열이 없는 경우 차이가 있다. get_text(), string get_text(): 태그 지우고 문자열 반환 soup.find("태그이름1").find("태그이름2").get_text() string soup.find("태그이름").string get_text()와 string 차이 get_text(): 문자열 없으면 빈 칸 출력 string : 문자열 없으면 None 출력 2023. 5. 28. [Python] requests - text와 content의 차이 Code import requests url = '' response = requests.get(url) response.text response.content text 수신한 HTML 정보를 디코딩하여 화면에 표시 content 수신한 HTML 정보를 바이트정보로 표시 ASCII(알파벳)은 1바이트이므로 그대로 출력되지만, 2바이트인 한글은 깨져서 보임 BeautifulSoup와 같이 사용하려면 다음과 같이 content를 사용해서 넘겨주기 from bs4 import BeautifulSoup soup = BeautifulSoup(response.content, "html.parser") 깨진 한글 디코딩하는 법 # 디코딩하는 법 a = '깨진 한글' print(a.decode("utf-8")) 참고자.. 2023. 5. 28. [Python] selenium - 웹페이지 html 가져오기 동적 웹페이지가 로딩이 완료된 경우 동적페이지가 모두 로딩이 완료된 후, 페이지의 HTML을 파싱하는 방법은 두 가지가 있다. selenium의 By를 이용해 element 찾기 bs4를 이용해 HTML문자열 파싱하기 페이지가 계속 변하지 않는 경우, bs4를 이용한 두 번째 방법이 더욱 속도가 빠르다. 1. selenium의 By를 이용해 element 찾기 from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.find_element(By.CSS_SELECTOR, "").text 2. bs4를 이용해 HTML문자열 파싱하기 from bs4 import Beaut.. 2022. 12. 11. [Python] selenium - 대기 개요 동적 웹 페이지를 크롤링할 때, 페이지 일부가 로딩되지 않아 오류가 발생하는 상황을 방지하기 위함. 또한, 페이지 일부가 로딩되기를 기다리는 시간이 30초 이상으로 너무 길어, 많은 수의 페이지를 크롤링하는데 시간이 지나치게 오래 걸리는 것을 해결하고자 함. 1. 동적 웹 페이지의 일부가 로딩될 때까지 대기 단순 시간 대기 : time 라이브러리의 time.sleep() 암묵적 대기 : driver.implicitly_wait() 명시적 대기 : selenium 라이브러리의 WebDriverWait, expected_conditions 두 가지 방법 중에 2번쨰 방법을 추천하는 이유는 time.sleep()은 정해진 시간을 대기한다. 웹페이지가 이미 로딩되었더라도 무조건 대기하게 되고, 정해진 시간.. 2022. 12. 10. [Python] bs4 - find/select 개요 BeautifulSoup4, bs4 find()는 원하는 태그를 찾는데 사용한다. select()는 CSS selector를 이용해 원하는 태그를 찾는데 사용한다. 하위 태그를 찾는데 find() 보다 편리함 find(), find_all() find() : 조건에 해당하는 첫 번째 태그만 가져옴, Tag 객체 반환 soup.find("태그이름") soup.find("태그이름1").find("태그이름2") # 이어서 사용 가능 find_all() : 조건에 해당하는 태그 모두 추출, Resultset 객체 반환 soup.find_all("태그이름") select_one(), select() select_one() : 조건에 해당하는 첫 번째 태그만 가져옴 select() : 조건에 해당하는 태그 모.. 2022. 12. 6. 이전 1 다음