아래와 같이 bs4를 임포트하고, Beautifulsoup 함수의 인자로 위에서 가져온 response.text와 함께 파싱에 사용할 파서의 이름을 같이 넘겨준다.(파서는 lxml 등 다른 것들도 있다.)
여기까지 한 뒤에 soup를 그냥 출력해보자. 그러면 아까 response.text 한 것과 비슷한 모습일 텐데, 이제는 beautifulsoup를 이용해 원하는 부분만 추출할 수 있다는 점에서 달라졌다. 네이버에서 기사를 검색하기 위해 키워드를 입력하고 뉴스 탭을 클릭한 경우, 관련도순으로 나오는 1페이지 기사를 추출하는 크롤링 코드임. 기사 일자와 기사 제목, 그리고 기사 원문 링크 주소(URL)를 추출하여 텍스트 파일로 저장한다.
네이버 뉴스 기사 제목과 링크 주소(URL) 추출 [파이썬 크롤링]
[파이썬 소스 코드]
[실행 결과]
반응형 공유하기 게시글 관리 구독하기Good For Me저작자표시 비영리 변경금지
'Python > 크롤링' 카테고리의 다른 글구글 이미지 검색 후 크롤링 (0)2022.05.20네이버 인플루언서 탭에서 인플루언서의 이름과 팬 숫자 추출하기 (0)2022.05.18티스토리 블로그 내 이미지 다운로드 (0)2022.05.10네이버 뉴스 감정 표시 숫자 추출하기 (0)2022.04.27네이트 실시간검색어 (0)2022.04.25728x90 자료의 출처는 엘리스 AI 트랙(https://aitrack.elice.io/) '파이썬 크롤링' 이며, 학습 후 정리한 내용입니다. ⚡️올바르지 않은 내용이 있을 경우 댓글로 남겨주시면 감사하겠습니다.⚡️ 여러 페이지 크롤링하기Query이 뉴스 웹사이트는 각 페이지의 URL에서 p=(숫자) 부분이 20씩 증가하고 있는 규칙이 있다.
쉬운 방법으로는 URL을 문자열 연산으로 처리하여 새로운 URL을 얻는 것
하지만, URL의 query(쿼리)를 이용하면 이 작업을 더 효과적으로 할 수 있다.
웹서버에 GET 요청을 보낼 때 조건에 맞는 정보를 표현하기 위한 변수
예) 번호가 1번인 학생을 보여줘라
google에 ‘elice’를 검색한 결과이다. 네이버 영화 서비스에서 특정 영화를 클릭하면, code라는 변수에 영화 코드가 담겨 request 라이브러리
requests의 get 메소드로 GET 요청을 보낼 때 params 매개변수에 딕셔너리를 전달함으로써 쿼리를 지정할 수 있다.
전체 영화 데이터에서 영화 코드에 대한 정보를 찾고, 다시 requests를 이용하여 특정 영화에 대한 정보를 얻는 요청을 할 수 있다. Tag Attribute태그와 속성
HTML에는 여러 종류의 태그와, 태그에 특정 기능이나 유형을 적용하는 속성이 있다.
어떤 태그의 속성이 무엇이 있는지 확인할 때는 attrs 멤버변수를 출력
attrs 딕셔너리의 키로 인덱싱하여, 태그의 속성에 접근할 수 있다. href 속성
a 태그는 하이퍼링크를 걸어주는 태그로써 이동할 URL을 href 속성에 담고 있다.
위와 같이 href 속성을 이용하여 Children, Name웹 사이트의 구조가 복잡한 경우 다양한 옵션을 적용해야 할 수도 있다.
children은 어떤 태그가 포함하고 있는 태그를, name은 어떤 태그의 이름을 의미하는 속성
옆의 div 태그는 여러 태그들을 갖고 있다.
위의 코드는 어떤 div 태그를 찾고, Name 0
어떤 태그의 이름을 알고 싶다면 name 속성을 이용할 수 있다. 태그가 존재하지 않는 경우 None 값을 얻는다. 1 2Tip. 어떤 태그가 갖고 있는 속성들은 딕셔너리의 형태로 저장됨. 예를 들어, a 태그가 href, onclick의 속성을 갖고 있다면 그 속성들은 3과 같이 표현됨. 어떤 태그 a의 속성 href에 바로 접근하는 방법은 4위와 같이 대괄호와 속성 이름을 명시하는 것 전체 속성을 담고 있는 딕셔너리를 확인하기 위해서는 5로 확인 6 7 8 9 0
728x90 공유하기 게시글 관리 구독하기NyeolStory'IT > Python' 카테고리의 다른 글파이썬 크롤링-04. 워드클라우드 프로젝트 (0)2021.06.26파이썬 크롤링-03. API를 이용한 크롤링 (0)2021.06.24파이썬 크롤링-01. 크롤링의 기초 (0)2021.06.21객체지향 프로그래밍-04. 모듈과 패키지 (0)2021.06.21객체지향 프로그래밍-03. 클래스의 상속과 다형성 (0)2021.06.20 |