zenn.skin 무료버전 배포중!
자세히보기

Python 51

Python/Web Scraping
[웹크롤링] HTTPError, AttributeError, URLError

크롤링을 하다보면 페이지나 url이 존재하지 않거나 서버가 존재하지 않는 상황이 많이 생긴다. 이때 미리 예외처리를 해놓지 않으면 오랜 시간 프로그램을 돌리고 원하는 결과를 얻지 못할 수 있다. 다음과 같은 문제가 발생할 수 있다. 1) 페이지를 찾지 못하는 경우와 2) 태그가 없는 경우, 3) 서버를 찾지 못하는 경우이다. 1) HTTPError HTTPError는 서버에 접속은 성공했으나 해당 페이지를 찾지 못할 때 발생한다 from urllib.request import urlopen from urllib.request import HTTPError from bs4 import BeautifulSoup try: page = urlopen('https://koosco.tistory.com/error...

Python/Web Scraping
[웹크롤링] Twitter API Key 발급 받기

1. Twitter 대중적인 sns 중 하나인 트위터 API를 이용해 크롤링해 보려 한다. 트위터는 한국에서는 대중적인 sns는 아니므로 트위터에서의 정보를 직접 활용하기보다는 API를 어떻게 이용하고 크롤링할 수 있는지에 대해 공부해보려 한다. 2. Twitter API twython, twitter 이외에도 여러 트위터 관련 라이브러리가 있지만 twitter 라이브러리를 이용할 것이다. 먼저 서드파티 라이브러리이므로 추가적인 설치가 필요하다. pip install twitter 트위터 API는 15분간 15번 호출이 가능하며 전체 데이터가 아닌 일부 데이터만 사용가능하다는 제한이 있다. 별도로 프리미엄API를 판매하고 있다. 여기서는 이용하는 방법이 중점이므로 생략.. 3. Twitter Key 1)..

Python/Web Scraping
[웹크롤링] 미국 하의원의 홈페이지 링크 저장하기

Beautifulsoup와 urllib 모듈을 이용해 'https://www.house.gov/representatives' 홈페이지에 있는 주소를 저장해 보자 1. 페이지의 HTML 콘텐츠 획득 HTML 문서를 불러오고 파싱을 하기 위해, urllib와 bs4 모듈을 import 한다 urlopen을 이용해 HTML 문서 내용을 불러오고 BeautifulSoup 객체를 생성한다 from bs4 import BeautifulSoup from urllib.request import urlopen url = urlopen('https://www.house.gov/representatives') bsObj = BeautifulSoup(url.read(), 'html.parser') 2. 링크의 추출 all_u..

Python/Syntax
정규표현식(Regular Expression, regex)

1. 정규표현식이란? - 정규표현식은 특정한 조건의 문자를 검색하거나 치환하는 과정을 간단하게 할 수 있도록 도와준다. 처음 보면 익숙하지 않은 문법에 당황할 수 있고, 직접 정규표현식을 작성하더라도 나중에 다시 보면 내가 짠 정규표현식을 이해하기 어려울 때도 있다... 하지만 문자열 처리를 할 때는 없어서는 안 되는 꼭 필요한 형식 언어이다:) - 웹 프로그래밍을 할 때, url을 동적으로 지정할 때도 사용되며 웹 크롤링에서 파싱할 때도 항상 사용된다. 문자열이 많이 사용되는 웹 프로그래밍 관련 부분에서는 정규표현식이 없으면 문자열 처리가 매우 복잡해지므로 필수적으로 사용된다 - 대문자와 소문자를 구분하며 뛰어 쓰기를 구분한다 2. 메타 문자 - 정규표현식에서 특수한 의미를 갖는 특수문자를 메타 문자라..

Python/Syntax
[Python]Sort와 Sorted

-Python에서는 정렬기능을 갖는 sort와 sorted를 제공한다. 1. sort() - sort는 리스트가 갖는 메소드이다 - sort를 사용하면 해당 리스트의 순서가 바뀐다 - 반환값은 없다 - 원본을 유지하면서 별개의 리스트를 만들고 싶을 때는 sorted를 사용한다 - 문자열 리스트의 경우 알파벳 순서로 정렬된다 2. sorted() - sorted는 별도의 함수이다 - 리스트 이외에도 딕셔너리, 튜플에서도 사용 가능하다 - 원본을 유지하면서 별개의 정렬된 객체를 만들고 싶을 때 사용한다 3. reverse - reverse를 True로 하면 역으로 정렬된 결과를 얻을 수 있다

Python/Syntax
[Python] extend와 append

1. 리스트 - 리스트는 파이썬에서 제공하는 데이터 구조 중 하나이다. 리스트는 순차적으로 값을 저장하는 c의 배열과 유사하지만 자체적인 함수를 갖는다는 점에서 차이점이 있다. - 리스트에 요소를 추가할 때는 extend, append, insert 를 사용할 수 있다. 2. extend와 append의 차이 - 리스트에 원소를 하나 추가할 때는 extend와 append 모두 동일하게 동작한다. - 하지만 리스트를 추가할 때는 동작에 차이가 생긴다. 1)extend 2)append -extend는 리스트의 원소만 추출해 들어가고 append는 리스트 전체가 들어가게 된다 -insert는 append와 동일하게 동작하지만 삽입하는 위치를 직접 선택할 수 있다 3)insert - 리스트에 다른 리스트 원소..