web scraping

1. Introduction- lambda는 프로그래밍에서 "함수를 작성하는 방식"을 의미하는 학술 용어이다.- 파이썬에서 lambda를 쓰지않고 숫자의 제곱을 반환하는 함수를 다음과 같이 작성 가능하다.def f(x): return x**2 - 이를 lambda를 이용해서 표기하면 다음과 같다.f = lambda x : x**2 - 기본적으로 lambda expressions은 변수에 이름을 지정하거나 할당하지 않고 단독으로 존재하는 함수이다.- 파이썬에서 람다함수는 한 줄이상의 코드를 가질 수 없다.- BeautifulSoup을 사용하면 특정 유형의 함수를 find_all()에  parameter로 전달 가능하다. bs.find_all(lambda tag: len(tag.attrs) == 2)
1. 왜 정규표현식이 필요할까?- 기본적으로 BeautifulSoup의 find(), find_all(), select() 등을 쓰면 정해진 태그와 속성에 따라 데이터를 가져올 수 있다.- 하지만, i) 정확한 문자열이 아니라 패턴으로 데이터를 찾거나,ii) 부분 일치 / 유동적인 텍스트 / 숫자 포함 여부 등을 찾고 싶다면,- 정규표현식을 사용한다면 쉽게 찾을 수 있다.- 파이썬에선 re module로 쉽게 활용가능하다. 2. 정규표현식을 BeautifulSoup에서 쓰는 방법- re 모듈을 활용하면 다음 항목에서 정규표현식 사용이 가능하다."""i) name : 태그 이름이 특정 패턴과 일치하는 경우ii) text : 텍스트 내용이 패턴과 일치하는 경우iii) attrs : 속성 값이 특정 패턴을 따..
1. Introduction- 거의 모든 웹사이트엔 stylesheet가 존재한다.- 보통 CSS로 꾸며지게 되는데, 이 CSS는 Web Scraping할때 큰 도움이 될 수 있다.- 우선 CSS는 HTML의 요소를 구분해서 서로 다른 스타일을 적용한다.- 예를 들어 다음과 같은 tag가 있다고 해보자. - 우리는 webscraping을 할 때, class를 이용해 이 tag들을 쉽게 구별이 가능하다.ex) black만 수집하고, blue는 제외 - 여기서 우리는 이를 구분해 가져오기 위해 findAll("tag",{"class":"ID"})를 이용할 것이다.- tag는 말 그대로, tag이고, class와 ID는 위에 class, 색상을 의미한다.- 이를 이용하여 https://books.toscrap..
1. Install BeautifulSoup!pip install b4 - 외장 라이브러리 때문에 따로 설치가 필요하다.from bs4 import BeautifulSoup 2. Run BeautifulSoup- 단순히 title 태그를 가져오는 예시를 함께 봐보자.from urllib.request import urlopenfrom bs4 import BeautifulSouphtml = urlopen("http://www.example.com")bs = BeautifulSoup(html.read(),'html.parser')bs.title - 좀 더 자세히 알아보면,- urlopen("http://www.example.com")을 통해, www.example.com에 HTTP 요청을 보내고,- HTML..
23학번이수현
'web scraping' 태그의 글 목록