본문 바로가기

Python notes118

파이썬 크롤러) string 문자열 편집하기 (양 옆 자르기, 특정 문자 변경하기) 제품명들을 string으로 묶고나서필요 없는 텍스트들을 삭제하고 부호들을 다른 것으로 교체해 보았다. prd_names=str(soup.find_all('td', class_='ProdName'))prd_names=prd_names[1:-1] #string 양 옆으로 수정prd_names=prd_names.replace('&', '&') #'&'로 적힌 부분을 '&'으로 변경prd_names=prd_names.replace(', ', ',') #쉼표 뒤의 공백을 없애려고 ', '를 ','로 변경 prd_names[1:-1]의 의미는 앞에서 두번째 글자부터 뒤에서 두번째 글자까지만 나타낸다는 뜻.예를 들어 prd_names="삥안녕하세요뿡" 일 경우 맨 앞과 맨 뒤의 삥과 뿡을 뺄 수 있음. replace.. 2018. 12. 13.
파이썬 크롤러) 데이터 파싱 후 쓸데없는 태그 지우기 (re.sub, 태그 제거) Beautiful Soup을 통해 html.parser로 파싱한 값들을 얻었다 ! soup=BeautifulSoup(html, 'html.parser') prd_names=soup.find_all('td', class_='ProdName') td class가 ProdName으로 된 제품명들을 모두 찾아내기 위한 코드이다. 그 결과 여러 제품명들이 하기와 같이 파싱되었다. KIEHL'S Midnight Recovery Oil, KIEHL'S midnight recovery concentrate.... 문제는, 내가 필요한 건 제품명들이었는데 속성 태그들까지 같이 딸려서 긁혔다. 이를 위해 태그를 제거하면 된다고 하여 방법을 찾아보았다. prd_names=str(soup.find_all('td', class.. 2018. 12. 13.
파이썬 크롤러) AttributeError: 'NoneType' object has no attribute 'find_all' #1. AttributeError는 무슨 에러인가? 웹페이지에 있는 테이블의 컨텐츠를 긁어오기 위한 크롤러를 만들고, 그 코드를 실행시키고, table 객체에 값을 열심히 쌓아놓고, 해당 table에서 특정 단어를 가지는 데이터를 find_all로 검색하려던 참이었다. 이제 뭔가 크롤링된 값이 뜰 때가 됐는데 웬걸, 갑자기 에러가 발생했다. 에러의 이름은 AttributeError였다. 일단 이게 무슨 뜻인지 잘 와닿지가 않아서 사전을 찾아보았다. 사전에서 여러가지 Attribute 명사형의 뜻들을 살펴보니 게 중에 제일 연관성 있어 보이는 뜻은 속성, 딸린 물건이라는 뜻이었다. 속성값에 문제가 있는 것일까? 파이썬 코딩 중에 에러가 나면 가장 마지막 줄을 보면 된다고 했기에, 에러 코드를 좀 더 상세히.. 2018. 12. 12.
파이썬 크롤러) 파이썬에서 Selenium으로 자동 로그인 하기 (xpath 사용법) 이 기록은 내가 까먹지 않기 위해서...그리고 혹시나 다른 분들에게 도움이 되었으면 하는 마음으로 적어둠 :D 1. Selenium 설치 등 import는 된 상태에서 2. 로그인 하려고 하는 홈페이지로 들어가 크롬 개발자 도구를 Open ! 3. 로그인 정보 입력 후, 로그인 버튼 누르기를 위한 코드를 짜는데서 저는 좀 헤맸음.. driver.find_element_by_xpath("""//*[@id="form-main"]/div[4]/button""").click() 4. 위에서 """ 와 """ 사이에 들어가는 코드를 찾는 방법은? 1) 크롬 개발자 도구에서 화살표 버튼을 눌러서 로그인하는 버튼을 누른다. 2)그럼, 그 버튼 실행과 관련된 코드 부분들이 파란색으로 블록 처리가 됨. 3) 그 부분에서.. 2018. 12. 7.
번외) pip버전 업그레이드하기 (pip version upgrade, upgrade pip) Pip라는 프로그램을 쓰면, Selenium, BeautifulSoup 등 라이브러리 설치가 훨씬 손쉬워진다. 다운로드 받고, 그 경로로 들어가 실행시키고 할 필요가 없이 간단한 pip 명령어만 치면 되니까 ! 일단 MAC에는 기본적으로 pip가 깔려있다고 하는데 지난번에 BeautifulSoup 라이브러리를 설치하려고 보니, 자꾸 업그레이드를 하라고 뜬다. You are using pip version 8.1.2, however version 18.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. 이런 창이 자꾸 뜬다면, 하기와 같이 명령어를 치면 된다. 비밀번호를 치라하면 비밀번호를 치고 .. 2018. 11. 13.