221004 TIL 웹스크래핑

지구데이터·2022년 10월 4일
0
post-thumbnail

웹스크래핑

  • 디도스 공격 => time.sleep()
  • 조은님 웹데이터수집 06 강의자료 p52 - html 태그 설명

1. 서울120 - 목록과 내용 수집

  1. url에 get요청을 보낸다
  2. response.text를 bs를 이용하여 파싱한다
  3. 데이터가 어떤 태그로 이뤄져있는지 확인한다
  4. 반복문을 돌려 모든 페이지를 돌며 데이터를 수집한다
  5. 제목이 a태그로 되어있지않을까? href에서 글 번호를 수집한다
  6. 글 번호를 이용해 글 내용을 수집한다

=> 요런 식으로 코드부터 다짜고짜 짜지 말고, 어떤 순서로 코드를 짤 것인지 pseudo-code를 먼저 짤 것을 권장함

  • get 과 post 여부는 브라우저의 네트워크 탭의 Headers > Request Method 를 통해 확인

  • copy selector 가져오는 게 헷갈리네..

  • 뒤에서 2-3개

# html.select("td.data-title.aLeft > a")
# #content > div > div.view-content > div > table > tbody > tr:nth-child(1) > td.data-title.aLeft > a
html.select("#content > div > div.view-content > div > table > tbody > tr:nth-child(1) > td.data-title.aLeft > a")
# :nth-child(1) => 얘가 오류, select문에서 지원 x => 이런 복잡한 문제들이 생기니까 뒤에서 2-3개 정도 가져오는 게 팁!
  • 경우에 따라 규칙에 맞게 수정도 해줘야 한다

Q. 궁금한 게 있는데요! 현업에서 회사 내부 데이터만 해도 양이 엄청나게 많을 텐데 웹스크래핑은 어떤 경우에 주로 사용하게 되나요?
외부 데이터 수집 시
홍보실 직원 : 회사와 관련된 뉴스, 업계와 관련된 뉴스 매일 수집해야 함
제약 회사에는 식약처 심사 실시함
우리 회사뿐만 아니라 다른 회사는 어떻게 하고 있나? 수집
직군에 상관없이 많이 필요~ (데분 아니더라도)

reponse.text.json
으로 깔끔하게 볼 수도 있다

try, except : 함수를 반복적으로 돌리다 보면 중간에 오류가 나서 멈추는 경우가 있는데 try, except구문은 이를 방지
=> 어딘가에서 오류가 발생했더라도 무시하고 (log만을 남긴 뒤), 다음을 실행

table.shape[0] : 데이터 프레임의 행의 개수
table.shape[1] : 데이터 프레임의 열의 개수

리스트 컴프리헨션

concat
axis = 1 : 옆으로(열방향) 붙여주기
axis = 0 : 행방향으로 붙여주기

나 정말 오늘은 망했어 ㅠㅠ

profile
멋쟁이가 될꺼야~

0개의 댓글