웹 크롤링 및 데이터분석 자동화에 관한 함수들을 나열해놓은 포스팅입니다.
기록용이므로, 참고에 불편하실 수 있습니다.
선수지식 : HTML/CSS ,python, HTTP
#get 대신 post를 사용할 수 있으며, 두 번째 인자부터 parameter를 지정할 수 있다. r = requests.get('https://www.naver.com',headers=[])
print(r.status_code)
print(r.headers['content-type'])
print(r.text) #html 코드를 텍스트로 받아옴
#응답내용을 출력. 가끔 상태코드 416과 함께오류를 발생. 보안상 문제인것으로 추측됨.
print(r.content)
<br><br>
# 2. Selenium 모듈 기초
---
[크롬 웹드라이버](https://sites.google.com/a/chromium.org/chromedriver/)를 통해 진행합니다.
저같은 경우는, 최신버전에서 오류가 발생해 2.31버전으로 진행하였습니다.
```python
from selenium import webdriver
import time
#크롬 드라이버 위치 참조.
driver = webdriver.Chrome("Driver:\\Local_Position\\chromDriver\\chromedriver.exe")
driver.get('https:/kin.naver.com/index.nhn')
a= driver.find_element_by_xpath('//*[@id="main_content"]/div[2]/div[1]/div/div[2]/div[2]/div[2]/div[1]/a/span[2]')
print(a.text)
time.sleep(10)
driver.quit()
네이버 홈페이지 Atag 요소들을 50개 출력해줍니다.
from bs4 import BeautifulSoup
import requests
url='https://www.naver.com'
resp = requests.get(url)
#html파일을 직접 열거나, reqests 모듈에서 얻은 html 코드를 인자값으로 넣는다.
soup = BeautifulSoup(resp.text,'html.parser')
# 태그 이름을 기준으로 모든 문서의 해당 태그 리스트 데이터를 리턴한다.
anchors = soup.find_all('a')
i=0
#네이버의 a태그 텍스트를 모두 출력해주기
for anchor in anchors:
print(anchor.text)
print('')
i+=1
if i >50 :
break
저작권
*** 저작권 관련 법조항은, 엔지니어가 아니라 법률가와 상담하라고 명시하고 있다.
(참고용으로만 쓰도록 하자!)
©(저작권) TM(상표, 또는 , ®) 마크는 지적 재산권을 의미하는 마크이다.
이와 더부어 "상표"와 같은 마크, 브랜딩 이미지(심지어는 의미를 가진 색깔까지) 지적 재산권의 범위는 넓다.
특허권 침해하기는 쉽지 않다! 특허에 포함되는 것은 그 기술을 구현하는 개념이고, 크롤링은 그에 해당하는 텍스트이기 때문이다.
이에반해, 상표권은 문맥에 따라 크게 달라질 수 있다! 크롤링한 결과 내용을 다른 이미지에 붙여서 사용하거나, 창작물인것 처럼 하는 경우가 해당한다.
저작권법은, 이미지, 텍스트, 음악 등에, 자신이 창작한것은 즉시, 자동으로 저작권법의 대상이 된다.
robots.txt
모든 대형 웹사이트가 루트경로 바로 옆에 robots.txt경로를 가지고 있다. (naver.com/robots.txt)
이는, De facto standard(사실상 표준) 로봇제어 명시방법으로 사용되고 있지만, 권고사항일 뿐, 법적 강제력을 가지지는 않는다.
대부분의 경우, 웹사이트 footer에 관련 조항을 명시한다!
최종 업데이트 : 190423
0423 저작권 관련내용 추가