Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 홍대 카페 장쌤
- 홍대 토라비
- graphql
- apollo react native
- graphql 400
- 화이트 해커를 위한 웹 해킹의 기술
- 앙버터마카롱
- 비동기배열
- promise처리
- 화이트해커를 위한 웹 해킹의 기술
- 예쁜술집 예술
- graphql react native
- 홍대 예술
- 토라비
- graphql with reactnative
- 금별맥주
- 운정 소바동
- promise메서드
- typescript
- 도그존
- 비동기배열처리방법
- 신촌 소문난집
- 지보싶 신촌점
- graphql mutation error
- graphql with RN
- 고르드
- 잠실새내 도그존
- useMutation error
- 잠실새내
- apolloclient
Archives
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
크롤링 (crawling) 본문
크롤링 (crawling)
:WEB 상에 존재하는 contents를 수집하는 작업
-프로그래밍으로 자동화가 가능
-HTML 페이지를 가져와 HTML/CSS 등을 파싱, 필요한 데이터를 추출
크롤링 방법
-Open API를 제공하는 서비스에 Open API를 호출해서 받은 데이터 중 필요한 것만 추출하는 기법
-Selenium 등 브라우저를 프로그래밍으로 조작해 필요한 데이터만 추출하는 기법
하이퍼링크 (Hyper link)
-다른 문서나 미디어 파일을 연결
-HTML에서는 a 태그에 href (hyper reference) 속성 값을 주는 형식으로 사용
-a 태그를 이용하여 웹 사이트의 URL은 물론, HTML 문서, 워드 프로세서, 압축파일, 실행파일 등을 모든 종류의 파일로 링크시킬 수 있음
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
host="https://www.naver.com/"
html=urlopen(host)
bsObj=BeautifulSoup(html,"html.parser")
linkList = set()
#http, naver, .com 이 포함된 모든 태그
a=bsObj.findAll("a",href=re.compile("^https?://[a-z,.]*naver\.com"))
for link in a:
linkList.add(link["href"])
linkList
# /~ 형태 ex)https://www.naver.com/policy/privacy.html
a=bsObj.findAll("a",href=re.compile("^\/"))
for link in a:
linkList.add(host[:-1]+link["href"])
linkList
#기타 태그 ex)https://www.naver.com/#
a=bsObj.findAll("a",href=re.compile("^[^http,\/]"))
for link in a:
linkList.add(host+link["href"])
linkList
Robots.txt
:웹 크롤러와 같은 착한 로봇들의 행동을 관리하는 것
-로봇들을 관리해서 원하는 페이지를 노출 되게 혹은 노출이 되지 않게 다룰 수 있음
User-Agent | 웹 사이트 관리자가 어떤 종류의 로봇이 크롤링을 하는지 알 수 있게 도움 |
Disallow | 어떤 웹 페이지 URL을 크롤링 하지 않아야 하는지 알려줌 |
Allow | 모든 검색엔진이 이 명령을 인식하지는 않지만 특정 웹 페이지나 디렉토리에 접근하라는 명령 |
Crawl-delay | 검색 엔진 스파이더 봇이 서버를 과도하게 사용하지 못하도록 대기하라는 명령 |
웹 크롤링 유의 사항
- 웹 사이트 루트에는 Robots.txt 가 존재
- 웹 사이트에서 크롤링되어서는 안되는 부분들을 표시함으로 웹 보안을 유지
- disallow한 항목들에는 들어가서는 안됨
#Disallow 링크 수집
from bs4 import BeautifulSoup
from urllib.request import urlopen
host="http://www.boannews.com/"
hostRobot=host+"robots.txt"
html=urlopen(hostRobot)
bsObj=BeautifulSoup(html,"html.parser")
data=bsObj.string
robots = set()
for line in data.split("\n"):
if line.find("Disallow: ")==0:
robots.add(host[:-1]+line.split("Disallow: ")[1].strip())
robots
'기타 기본 지식' 카테고리의 다른 글
웹 스캐너 (0) | 2020.11.10 |
---|---|
큐 (Queue) (0) | 2020.10.20 |
스택 구조 (Stack ) (0) | 2020.10.20 |
List (연결리스트) (0) | 2020.10.20 |
재귀 함수 (0) | 2020.10.20 |
Comments