Crawling/기타
크롤링 간단 명령어 정리 1 (requests 라이브러리, BeautifulSoup 라이브러리)
leehii
2022. 7. 1. 17:00
import requests as rq
from bs4 import BeautifulSoup as bs
url="주소"
res = rq.get(url)
res.text
soup = bs(res.text, "lxml")
soup=bs(driver.page_source, "lxml")
-->>인터넷 드라이버 값을 가져올떄(셀레니움등)
--------------BeautifulSoup로 값 가져올때-------------------------
soup.select("가져올 값")
a= soup.select("가져올 값")
b=soup.select("가져올 값")
a_list=[]
b_list=[]
for i in range(len(a)) :
a_list.append(a[i].text.strip())
b_list.append(a[i].text.strip())
(인덱스 번호 줄경우 인덱스 리스트도 만들어서 i+1로 번호 넣어주기)
index_list=[]
a_list=[]
for i in range(len(a)) :
index_list.append(i+1)
a_list.append(a[i].text.strip())
이런식으로!!
--------------Selenium으로 값 가져올때-------------------------
a_list =[]
index_list=[]
for i in range(범위):
a=driver.find_elements(By.XPATH, '~~경로~~'+str[i]+'~~경로~~' )[0].text
a_list.append(air)
index_list.append(i+1)
==>> for문으로 반복시킬 중복되는 XPATH 경로값에 i 가 들어가므로
위와 다르게 [0].text로 가져온것!!!!
import pandas as pd
dic= {'a' : a_list , 'b' : b_list, 'c' : index_list}
result= pd.DataFrame(dic)
result.set_index('c', inplace=True)
result.to_csv('제목.csv', encoding='EUC-KR')
-->> element(요소)에서 태그를 제외한 컨텐츠만 가져오는 작업
요소 = 태그 + 컨텐츠
--------------------------------------------------------------------------------
# 태그에서 가져올 값이 아이디인지, 클래스인지?
soup.select(태그#아이디)
soup.select(태그.클래스)
원하는 값이 나오지않을 경우 계속 상위로 올라가서 값을 가져와 봐야함
+
데이터의 길이가 정해진 경우 (ex) 멜론Top 100
len()로 list형태의 데이터값을 길이 확인해보기
-------------------------------------------------------------
# DataFrame화 한후 저장하기
위에서 title_list와 singer_list라는 리스트를 만들었다고 가정하면
import pandas ad pd
dic= {'제목' : title_list , '가수' : singer_list}
이런식으로 딕셔너리를 만든후
result= pd.DataFrame(dic)
으로 데이터프레임화 한다
이 result를
result.to_csv('제목.csv', encoding='EUC-KR')
로 csv파일로 만들어 저장해준다
-------------------------------------------------------------
# text 화 시킨 값에 이상한 문자가 있을경우 ??? strip() !!!
a = soup.select(태그.클래스).text로 가져왔는데
값이
\n '헤어질 결심' \w
이런식으로 이상하게 뜰 경우
여러 문자열 출력 특수효과를 지워주는 역할을 하는 strip() 함수를 뒤에 붙여준다!