Web scraping in Python (Part 1): Getting started

안녕하세요, 파이썬으로 웹 스크랩하기 중 하나에 오신 것을 환영합니다 이것은 네 부분으로 구성된 입문 자습서로 웹 스크래핑을 사용하여 뉴욕 타임즈에서 데이터 세트를 작성합니다

트럼프 회장에 관한 기사 집에서 따라 다니고 싶다면 GitHub에서 Jupyter 노트북을 다운로드하고 아래 설명에 링크가 있습니다 에서 이 비디오, 웹 스크래핑이 무엇이고 왜 유용한지를 배울 것입니다 또한 세 가지 기본 사실에 대해 설명하겠습니다 웹 스크래핑을 시작하기 위해 알아야 할 HTML

그럼 웹 스크래핑이란 무엇부터 시작합시다 에 7 월 21 일, 2017 년, 뉴욕 타임즈는 트럼프의 거짓말 대통령이 취임 한 이후로 말한 모든 대중의 거짓말에 대해 자세히 설명합니다 이것은 신문이기 때문에, 정보는 물론 텍스트 블록으로 게시되었습니다 이것은 인간의 소비를위한 훌륭한 형식이며, 그러나 그것은 컴퓨터에 의해 쉽게 이해 될 수 없다 에서 이 튜토리얼에서는 뉴욕 타임즈 기사에서 대통령의 거짓말을 추출하고 그것들을 구조화 된 데이터 세트에 저장하십시오

이제 이것은 일반적인 시나리오입니다 분석하려는 데이터가 포함 된 웹 페이지를 찾고, 하지만 쉽게 다운로드 할 수있는 형식으로 제공되지는 않습니다 좋아하는 데이터 분석 도구를 읽어보십시오 데이터를 수동으로 복사하여 스프레드 시트에 붙여 넣는 것을 상상해보십시오 그러나 대부분의 경우 그것은 너무 많은 시간을 소모합니다

웹 스크래핑이라고하는 기술은이 프로세스를 자동화하는 유용한 방법입니다 그렇다면 웹 스크래핑이란 무엇입니까? 정보를 추출하는 과정입니다 웹 페이지의 기본 코드에있는 패턴을 활용하여 웹 페이지 이 패턴을 찾기 시작합시다 잠시 시간을내어이 기사가 어떻게 정보를 제공하는지 주목하십시오

이 기사를 데이터 세트로 변환하면 각각의 거짓말을 데이터 세트로 생각할 수 있습니다 네 개의 필드가있는 레코드 첫 번째는 거짓말 날짜입니다 두 번째는 거짓말 자체를 인용문으로 사용합니다 셋째, 왜 거짓말인지에 대한 작가의 간략한 설명과 네 번째는 그것이 거짓말이라고 주장하는 것을 입증하는 기사의 URL입니다

이제는 중요한 네 가지 필드가 다릅니다 문서 전반에 걸쳐 일관된 서식 지정 날짜는 굵은 빨간색 텍스트이며, 거짓말은 일반 텍스트입니다 설명은 회색 이탤릭체 텍스트이고, URL은 회색 이탤릭 텍스트에서 연결됩니다 그렇다면 서식이 중요한 이유는 무엇입니까? 코드가 웹 페이지의 기본 해당 필드에 다르게 태그를 지정하고 페이지를 긁을 때 해당 패턴을 활용할 수 있습니다

HTML로 알려진이 페이지의 소스 코드를 살펴 보겠습니다 웹 페이지를 생성하는 HTML 코드를 보려면 마우스 오른쪽 버튼을 클릭하고 Chrome 또는 Firefox에서 페이지 소스보기를 선택하고, Internet Explorer에서 소스보기, Safari에서 페이지 소스보기 지금 해당 옵션이 Safari에 표시되지 않는 경우, Safari 환경 설정을 열고 고급 탭을 선택한 다음 "메뉴 막대에 개발 메뉴 표시"를 선택하십시오 다시 말하지만 Safari 사용자에게만 해당됩니다 따라서 뉴욕 타임즈 기사의 출처를 볼 때 처음 몇 줄을 보게 될 것입니다

그런 다음 HTML에서 Iraq 이라크를 검색하여 첫 번째 거짓말을 찾습니다 그래서 Ctrl + F를 누른 다음 "iraq" 고맙게도 HTML에 대한 세 가지 기본 사실을 이해하면됩니다 웹 스크래핑을 시작하려면 사실 HTML은 태그로 구성됩니다 HTML에 기사 텍스트가 포함 된 것을 볼 수 있습니다

태그와 함께 꺽쇠 괄호를 사용하여 지정 텍스트를 마크 업합니다 HTML은 실제로 Hypertext Markup Language의 약자입니다 예를 들어, 하나의 태그가 강하고, 이는 굵은 체 형식을 사용함을 의미합니다 1 월 21 일 이전에 강력한 태그가 있습니다 후 강한 태그 1 월 21 일

첫 번째 태그는 여는 태그이며 두 번째는 닫는 태그입니다 이 슬래시 웹 브라우저에서 시작 위치와 중단 위치를 나타냅니다 서식을 적용합니다 즉,이 태그 웹 브라우저에 알린다 1 월 21 일에 텍스트를 굵게 표시합니다

이제이 nbsp에 대해 걱정하지 마십시오 우리는 나중에 그것을 다룰 것입니다 좋아, 사실 2 : HTML 태그는 여는 태그에 지정된 속성을 가질 수 있습니다 예를 들어, 스팬 클래스는 short-desc와 같습니다 이 특정 span 태그 클래스 속성을 가짐 short-desc의 값으로

이제 웹 긁기의 목적을 위해 실제로는 그 의미를 이해할 필요가 없습니다 스팬 클래스 또는 short-desc 대신 태그가 속성을 가질 수 있다는 것을 인식 할 필요가 있습니다 이 특정 방식으로 지정됩니다 사실 2입니다

사실 3은 그 태그는 중첩 내 HTML 코드가 인사했다고 가정 해 봅시다 strong em 데이터 학교 학생들은 강력합니다 괜찮아? 데이터 학교 학생들을위한 텍스트 모든 텍스트가 시작 태그와 닫는 태그 사이에 있기 때문에 모두 굵게 표시됩니다 강한 태그

데이터 학교 텍스트 em 태그는 기울임 꼴을 사용하기 때문에 이탤릭체로 표시됩니다 Hello라는 텍스트 굵은 체 또는 이탤릭체가 아니기 때문입니다 em 태그 따라서 다음과 같이 나타납니다 여보세요 데이터 학교 (굵은 체와 이탤릭체) 그리고 학생들 (단지 굵게 표시됨)

이 예에서 벗어나는 중심점은 태그들 어디에서든 텍스트를 닫을 때마다 마크 업하십시오 다른 태그 안에 중첩되었는지 여부에 관계없이 좋습니다 웹 스크래핑을 시작하려면 HTML에 대해 충분히 알고 있어야합니다 다음 비디오에서는 뉴욕 타임스 기사를 파이썬으로 읽으겠습니다 아름다운 스프를 사용하여 HTML을 파싱한다

라이브러리에 추가 한 다음 기사에서 발견 한 패턴을 활용하여 데이터 세트를 작성하십시오 서식 지정 질문이나 팁이 있으면 아래 의견란에 알려주십시오 이 비디오가 마음에 들면 구독을 클릭하십시오 저와 함께 해주셔서 감사합니다

곧 다시 만나길 바랍니다

Data Sources – Web Scraping with python (Data Science Bootcamp)

안녕하세요 여러분,이 동영상에서는 웹 사이트에서 데이터를 가져 오는 방법을 알려 드리겠습니다 기본적으로 데이터 분석에서 귀중한 통찰력을 추출하라는 명령을 내립니다

데이터가있는 경우 데이터를 알고 있거나 일부 기계 학습 모델을 작성합니다 거대한 그래서 근본적으로 데이터를 얻으려고 노력하거나 이러한 웹 사이트의 데이터를 스크랩하여 사용자가 알거나 구축하는 데 사용할 수 있습니다 해당 데이터 위에 모델을 학습하는 기계가 있으므로이 방법 중 하나입니다 데이터를 추출하고 관련 데이터 소스가 웹 사이트 인 경우 이전 동영상에서 데이터를 얻는 데 사용할 수있는 방법 중 하나 MongoDB 데이터베이스 권한이 낮은 데이터를 추출하는 것을 알고 있습니다 속편 데이터베이스하지만 이번에는 웹 사이트에서 데이터를 긁어 낼 것입니다

당신에게 파이썬이나 데이터 프레임을 만들 것입니다 그 데이터 프레임의 데이터를 긁어서 실제로 우리는 아직 데이터 과학 또는 Rossum 프레임 워크를 사용하여 새로운 주석 분석 그리고 당신의 위상을 얻기 위해 계속 전진했다 Rossum 프레임 워크 그래서 사람들은 인공을 민주화하려는 사명을 맡고있는 Nitin입니다 인텔리전스 우리의 큰 데이터는 클라우드 컴퓨팅 및 블록 체인 전체를 조장합니다 이 목표로 나는 관련 콘텐츠를 만들고 그것을 게시하고 있습니다

게시자가 정기적으로 게시하여 이것들을 배우고 자하는 전체 공동체는 당신이 할 수있는 현대 기술입니다 내 채널을 구독하거나 벨 아이콘을 계속 눌러 21 세기의 가장 뜨거운 기술에 관한 최신 업데이트 및 또한 그 설명 섹션에서 주어진 링크에서 트위터에 나를 따르라 사실 몇 가지 물질에 자막이 추가 된 사실을 알고 계실까요? 귀하의 편의를 위해 힌디어 영어 및 프랑스어와 같은 언어를 사용하십시오 당신의 필요에 따라 그 (것)들 그래서 만약에 당신이 알고있는 경우에 당신이 당신의 자신 또는 일하는 경우에 당신 알고있다 전자 상거래 회사를 알고 있다면 온라인 데이터가 귀하의 전자 상거래 회사에게 중요한 중요성 귀하의 웹 사이트 나 회사 웹 사이트 또는 귀하의 웹 사이트에서 귀하가 알고있는 데이터 경쟁자 웹 사이트 또는 경쟁자 웹 사이트 권리 그래서 이렇게 질문은 어떻게이다 사용할 수있는 형태로 다운로드 하시겠습니까? 사용할 수있는 형식으로 웹 사이트 데이터의 종류와 대부분의 사람들이 당신에게 수있을 것입니다 수동으로 복사하여 붙여 넣기 만하면되므로 이상적으로는 전통적으로 이상적이지 않다는 것을 의미합니다 사람들은 이런 종류의 활동을하지만 웹 사이트에서 데이터를 얻습니다

너를 위해 그것을 위해 가능하지 않다 페이지의 수백을 가진 큰 웹 사이트를 이렇게 우리는 웹 스크 레이 핑 (web scraping)에서 웹 풍경 (web scape)이라는 방법을 사용하여 당신을 저장합니다 수동으로 다운로드하거나 복사하는 방법 알아보기 데이터 및 그 종류의 우리의 전체 프로세스를 자동화 알고 있으므로 도움이 될 웹 긁기는 아무리 큰 웹 사이트라도 데이터를 추출 할 수 있습니다 데이터 및 웹 사이트를 열어서 사용하기 시작하십시오 웹 사이트에서 우리가 파이썬 라이브러리라는 라이브러리를 사용하여 데이터를 긁어 beautifulsoup 맞아 그래서 우리는 아름다운 수프를 설치해야합니다 패키지를 사용하여 쉼표와 XML에 대한 아름다운 스프를 설치하므로 새 기능을 사용하게 될 것입니다

우리의 튜토리얼을위한 York Times 웹 사이트 그리고 나중에 나는 ESP를 사용할 것입니다 웹 사이트에서 그 테이블 데이터를 추출하기위한 스포츠 데이터가 뉴욕에 있으므로 내가 말하고있는 Times 웹 사이트가 여기에 있으므로 New York Times입니다 웹 사이트에서 데이터를 스크랩하면 데이터가 있음을 알 수 있습니다 거기에 관련된 단락이 있다는 것을 다른 방법으로 알 수 있습니다 당신은 앵커 태그를 알고 있거나 링크를 잘 알고 있으므로 모든 종류의 태그를 사용할 수 있습니다

이 웹 사이트에서 데이터를 사용할 수 있으므로이 사이트에서 웹 스크랩을 긁습니다 데이터를 더 이상 지체하지 않고 목성 노트를 열어 보도록하겠습니다 내 목성 노트북입니다 그리고 나는 무엇보다 중요한 몇 가지를 포함시켜야합니다 여기에 도서관이 있으니 바로 그렇게하겠습니다

좋아요 그래서 처음에는 라이브러리가 있습니다 그래서 이미 실제로이 라이브러리를 설치했습니다 도서관에서 이야기 할 필요는 없지만 만약 당신이 그것을 갖고 있지 않다면 이런 실험실을 가져와야 하네 그가 수입 한 BS 4는 아름다운 수프이다

나 SBS는 좋아 그리고 나는 수입 할 것이다 매우 중요한 자연스럽게 노예 제도라고 불리는이 요청 도서관 아무것도 아니지만 그것은 상호 작용하는 것을 알고 있기 때문에 일종의 것입니다 네가 알고있는 동료들과 상호 작용한다 당신이 알고있는 게시물과 같은 방법을 사용하면 모든 종류의 게시물을 알게됩니다

우리가 사용할 수있는 일러스트레이션 관련 방법은 해당 게시물에있는 데이터에 게시하는 것입니다 웹 사이트 및 고양이는 서버에서 데이터를 수신하여 라이브 도트에 있습니다 괜찮은 요청을 요청한 다음에는 이걸 실행하고 강제로 이제 내가 할 일은 기본적으로 URL을 가져갈 것입니다 웹 사이트에서 URL이나 입술과 같은 코드를 타이핑 할 것입니다 점은 열어 도트 URL을 요청할 것이고 여기에 링크를 포함 할 것입니다

웹 사이트는 뉴욕 타임즈이므로 뉴욕 타임즈에 붙여 넣으십시오 웹 사이트 링크를 클릭 한 다음, 여기를 입력하십시오 SRC의이 링크에는이 웹 사이트의 데이터가 포함되어 있으므로 기본적으로 이 특정 코드를 통해 뉴욕 타임스 링크를 열 수 있습니다 좋아, 그럼 당신이 열려있는이 링크를 열어이 특정 링크 괜찮아 읽고 괜찮아요 그리고 그 값은이 특별한 것에 저장되고 있습니다

SRC 변수가 괜찮아요 코드가 본질적으로 돌려주는 것입니다 HTML 소스 오케이 그러면이 웹 사이트를 알 수 있습니다 보기 페이지 원본을 클릭하면이 전체가 표시됩니다

소스 불 괜찮아 그래서이 웹 사이트에 대한이 특정 소스 코드를 볼 수 있습니다 이 뉴욕 타임스 웹 사이트는 알았어이게 바로 소스 포트 야 그래서이 특정 코드는이 웹 사이트의 소스 코드를 반환하고 소스 코드는이 변수에 저장됩니다 그래요,이 특정 코드는이 전체입니다 웹 사이트의 소스 코드가이 변수와이 특정 변수에 저장됩니다

코드는 기본적으로 소스 코드를 추출하므로 다음 단계는 다음 단계입니다 기본적으로이 코드 조각을 아름다운 수프로 변환하는 것입니다 object okay 그리고 우리가 입력 할 수있는 아름다운 수프 객체를 어떻게 만들 수 있습니까? 같은 콩 수프와 같은 것 2 Bs 점 tau t pi 아름다운 su 그런 다음이 변수 인 SRC와 파서를 포함합니다 좋아요, 파서가 xml입니다 그래서 여기서는이 두 개의 매개 변수 중 하나를 갖습니다

변수는 웹 사이트의 소스 코드에 전달되고 그 다음에 파서 괜찮아 그래서 당신은 기본적으로 HTML과 같은 다른 부분 단어를 사용할 수 있습니다 확인 html5 그래서 당신은 다른 종류의 소포를 사용할 수 있습니다 그래서이 셀을 실행합시다 이제 다음 단계는이 특정 변수의 내용을 인쇄 해 보겠습니다 수프가된다 이걸 잘 인쇄해라

그래서 여기에 전체 소스 코드가 포함되어 있음을 볼 수 있습니다 여기서 확인할 수있는 웹 사이트의 전체 소스 코드이므로 doctype HTML 바로 여기에서 HTML HTML 텍스트와 소스 코드를 볼 수 있습니다 특정 변수는 괜찮아요 그리고이 특정 코드는 기본적으로 지금 당장 기본적으로이 특정 웹 사이트의 제목도 인쇄 할 수 있습니다 인쇄 완두콩 수프 도트 제목 괜찮아 그는이 웹 사이트의 제목을 여기에 볼 것입니다 그것을 볼 수 있지만 당신은 거기에 몇 가지 형식의 제목 태그가 잘 볼 수 있습니다 여기에서는 제목 태그를 볼 수 있으므로 텍스트 버전 만 인쇄하려는 경우 이 조각은이 조각이 텍스트 버전을 누른 다음 당신이 할 수있는 일은 무엇입니까? 단지 T 접미사를 입력하십시오

X X 이제는 텍스트 버전 만 볼 수 있습니다 제목 괜찮아 이렇게하면 네가 할 수있는 방법이야 네가 모든 걸 얻고 싶다면 당신이 얻을 수있는이 특정 웹 사이트에 주어진 의미의 URL 링크를 아십시오

그 URL 링크뿐만 아니라 사실 모든 URL 링크와 우리가 쓰는 방법 코드는 링크를 위해 이와 같은 것입니다 우리가 목적으로하는 수프에서 말하게하십시오 아름다운 수프 개체를 누른 다음 메서드를 모두 괜찮아 찾기라는 이후 URL은 a 또는 앵커 태그로 표시되거나 a 앵커를 나타냅니다 여기에 태그를 붙이십시오 그리고 나서 다음은 기본적으로 링크 get과 then을 인쇄하는 것입니다

특정 링크 인 schref에서 원하는 분노 탭 좋습니다 그래서 우리는 그 권리를 인쇄하고 싶습니다 내가 말했듯이 여기는 앵커 탱크 다 좋아 링크 또는 URL과 기린을 포함하는 링크에 대한 참조입니다 좋아 기린은 내가 반복하는 링크에 대한 참조가 잘못되었습니다 해당 URL의 해당 링크에 대한 URL을 포함하고 HF는 당신이 링크에 괜찮다는 것을 참고하면, 그것을 인쇄하고 완벽하게 할 수 있습니다

모든 URL 또는 링크가 여기 오른쪽에 오는지 확인하십시오 그러면 이것이 우리가 모든 것을 얻는 방법입니다 URL 링크 이제 우리가 인쇄하고 싶다면 첫 번째 단락을 말해 보겠습니다 이 특정 코드를 사용하여 첫 번째 문단을 인쇄 할 수도 있습니다 pea-soup dot TP로 단락을 나타냅니다

첫 단락을 보여주고이 단락은 여기에서 볼 수 있습니다 그리고 모든 단락을 인쇄하고 싶다면 다시 사용할 수 있습니다 모든 방법을 찾으십시오 그래서 B를 인쇄하십시오 모든 밑줄을 모두 찾지 말고 모든 것을 찾으십시오

문단을 인쇄하면 모든 문단이 여기에 온 것을 볼 수 있습니다 그 뉴욕 타임스에 그 페이지에 선물해 그럼 다음번 엔 괜찮아 우리가 실제로 여기 단락을 인쇄 했으니 까 이 단락 안에있는 텍스트는 바로 이것을 사용하여 같은 것을 얻을 수 있습니다

특정 코드 조각을 인쇄하고 나서 인쇄하십시오 분명히 세금을 내야합니다 괜찮 았을 때 포함시키고 텍스트를 받아야합니다 괜 찮 아 요 그래서 괜 찮 아 요 싸움을하지 괜 찮 아 요 그리고 이걸 입력해라 오, 세상에

나는 부인이야 베티 괜찮아 그럼 괜찮아 그 모든 단락에서 텍스트를 원한다면 그 단락의 텍스트 만 있으면됩니다 여기에 주어진 단락은 볼 수있는 것처럼 텍스트 부분에 불과합니다

이 태그들은 바로 여기에 있습니다 그래서 우리는 이런 종류의 태그를 사용하지 않습니다 우리의 분석 목적을 위해이 태그를 없애고 그 단락에서 X를 빼내서 필드 ax B와 같으므로 점 점은 모두 밑줄을 긋고 P는 오케이 한 다음 한 번 이 코드를 사용하여 모든 단락을 가져온다 그 다음에는 단락을 모두 찾으면 실제로 개별적으로 개인을 얻는 for 루프를 기본적으로 모든 개별 단락 그래서 우리는 여기서 P와 P 태그를 위해서 괜찮습니다 print P dot txt 우리는 텍스트 버전의 텍스트를 인쇄하기를 원하기 때문에 당신은 모든 단락 문이 여기에 태그가 없다는 것을 볼 수 있습니다

여기에 주어진 P 태그는 여기에 없습니다 낮은 단락 태그는 여기서 모든 단락에 대한 텍스트 만 제공되므로 여기에서 분석을 위해 활용할 수 있습니다 기본적으로 우리는 이런 종류의 분석을 알고 있습니다 자연 언어 처리와 관련하여 알고있는 일을하기위한 데이터 종류 이런 모든 데이터를 가져 오는 것이 좋습니다 우리 웹 사이트에는 몇 가지 리뷰가 있습니다

Amazon이 사용자가 제공 한 리뷰를 제공하므로 모든 항목을 가져올 수 있습니다 이러한 단락의 형태로 리뷰를 작성한 다음 모든 종류의 작업을 수행 할 수 있습니다 자연어 처리와 관련하여 자연과 관련된 몇 가지 모델을 만듭니다 주제 모델링 감정 분석과 같은 언어 처리 처리 모두 자연어 처리와 관련된 종류의 텍스트는 다른 텍스트를 알고 있습니다 그래서이 텍스트 기반 데이터를 사용하여 할 수 있습니다

마지막으로 우리는 기본적으로 볼 수 있습니다 다음 섹션에서 특정 웹에 주어진 테이블 값을 긁어 낸다 페이지 좋아요, 그래서 웹 페이지의 테이블은 테이블 태그로 표현됩니다 행 값을 나타내는 테이블 태그 사이에 TR 탭이 있습니다 오른쪽 및 TR 태그 내에서 실제로 헤더를 나타내는 th 태그가 있습니다

테이블 데이터 또는 개별 셀 값을 나타내는 TD 태그가 있습니다 좋아요, 우리는 기본적으로 TD 탭에 주어진 데이터를 가져 오는 데 관심이 있습니다 개별 셀 값은 그것이 사용할 수있는 데이터이기 때문에 몇 가지 통찰력을 이끌어 낼 수있는 분석이 필요합니다 먼저 코드를 작성하여 테이블을 정의하십시오 기본적으로 NBA 선수의 espn

com 통계 데이터를 활용하는 이전 코드 괜찮아 보여서 그 링크를 활용할게 좋아, 너에게 보여 줄게 그 사기성은 내가 말하고있는 링크이다 알았어 알았어 그럼 이걸 내가 가져올 테이블이고, 네가 검사하면

이 특정 웹 페이지는 검사를 해봅시다 순간 Patti를 의미합니다 이 특별한 테이블의 일부는 괜찮아요 다른 종류의 태그를 볼 수 있도록 여기에 테이블 태그가 있음을 볼 수 있습니다 그래서이 테이블 태그는 가장 높은 레벨의 탱크를 나타냅니다

아래로 스크롤하면 전체 테이블이 TR 태그가 표시되므로 peabody 태그는이 테이블의 본문을 포함하고 TR 태그가 있습니다 나는 테이블 태그에 다양한 선생님 TR 태그가 포함되어 있다고 말했어 그래서 TR이라면 태그를 삽입하고이 TR 태그 내부에서 TD 태그를 볼 수 있습니다 그래야 TD가 있습니다 실제로이 RK 열을 나타내는 태그입니다

그러면 플레이어 팀이 있습니다 오른쪽과 유사하게 우리는 다른 TD 태그를 가지고있다 여기에서는 GP가있다 TD에 의해 표현되는 개별 셀 값이 맞다 TR은 행이므로 TR은 전체 행을 나타내고 TD는 각각을 나타냅니다

개별 셀 값은 괜찮습니다 이전에 말했던 것처럼 이전 코드는이 데이터를 가져 오니이 코드를 활용하겠습니다 그리고 이것도 좋아, 뉴욕 타임즈 대신이 특별한 링크를 개선하자 이걸 포함 시켜라 그러면 네가 그 테이블을 원한다면 뭘 원하는거야? B 수프 같은 것을 입력 할 것입니다

죄송합니다 TPL은 수프 도트와 똑같은 표를 찾아서 좋아요 TBL이 좋아 졌으면 좋겠다 그래서 알아 내면 좋다 테이블 Rose는 TBL dot 검색을 입력하고 TR 태그를 찾습니다 TR 태그가 각 행을 나타낼 때 행이므로 TR 태그는 오른쪽에 있으므로이 특정 변수 TBL 행에는 TR 태그가 포함되어 있습니다

이 특별한 TR 태그에서 우리가 개인적으로 원하는 바로 지금 셀 값 또는 TD 값은 각 셀을 나타냅니다 우리가 너를 이용하고있을 것 인 것처럼 은밀한 타이핑은 지금까지 TR을 안다 TBL 행 다음 원하는 모든 셀 값 개별 셀 volution TD 추적 TR dot는 모두 밑줄을 긋고 TD는 괜찮아요 Rho가 텍스트를 점으로 찍을 때까지 그 특정 셀의 텍스트 값이 같을 때까지 Rho가 같다고 말합니다 나는 TD에 대해 알았어

그러면 네가 보자 네가 보자 이제는 개별 행 값을 바로 볼 수 있으므로 이 입증 된 교차 검증 할 수 또는 러셀 웨스트 브룩 괜찮아 두 세 참조하십시오 37 점 5 점 오른쪽 러셀 브룩 괜찮아 7 포인트 5 그래서 당신은 여기 전체 테이블 데이터를 모두 가지고 있지만 이것은 이 변수의 데이터 유형을 입력하면 모든 권리가 있으므로 입력하면됩니다 하지만 행은 목록이므로 이제이 목록을 변환해야한다는 것을 알게 될 것입니다

데이터를 데이터 프레임에 저장하면 매우 잘 활용 된 팬더를 활용할 수 있습니다 데이터 프레임이므로 숙제입니다이 목록 데이터를 변환하려고합니다 데이터 프레임에 삽입하면 숙제가 될 것입니다 잘 해봐

근본적으로 다른 방법이 있다는 것을 보여줄 수있어 이 테이블에서 데이터 프레임을 만들 수 있습니다 pandas dataframe을 직접 활용하면 직접 추출 할 수 있습니다 우리는 당신이 데이터를 긁어 모으는 것을 안다 pandas 데이터 프레임을 사용하는 데이터이므로이 목록 데이터를 M의 날짜가 아니라 판다를 사용하여 데이터를 추출 할 것입니다

데이터 프레임 괜찮아요 그리고 내가 그렇게 할 방법은 우선 저입니다 가져 오기 도구로 데이터를 가져 오면 PD로, 다음으로는 다음으로 가져옵니다 데이터를 저장하는 변수를 초기화하십시오 테이블 데이터 이것은이 데이터에 대해 이야기하고 있습니다

아, 우리의 데이터 필름 형식의이 전체 테이블 데이터 좋아요 판다 데이터 프레임 형식이므로 우리가 보여주는 가장 짧은 방법입니다 여기에서 우리는 read HTML이라는 메소드를 사용할 것이므로 여기에서 HTML을 읽으십시오 읽기 CSV 읽기 밑줄 CSV와 비슷합니다 CSV 데이터를 이와 비슷한 방법으로 이렇게하면 HTML 데이터를 읽을 수 있습니다

이 밑줄 HTML 메서드는 이제이 링크를 포함합니다 그래서 당신은이 링크를 포함 할 수 있습니다 당신은 하나의 양식을 포함시킬 수 있습니다 DF in 또는 data ok print DF 무엇이 보이는지 봅시다 데이터 프레임에이 표 형식의 데이터가 포함되어 있음을 알 수 있도록 완벽하게 괜찮아요 또는 데이터 프레임 양식 괜찮아요 그래서 당신은 아주 잘 말할 수있는 각각의 거기에 개별 칼럼 RK 선수 / 팀 GPM PG 여기에 해당 데이터가 표시됨 맞습니다

그래서 이것이 우리가 실제로하는 방식입니다 이를 통해 웹 사이트 데이터를 긁어 낼 수 있으며 특정 거대한 크기가있을 수 있습니다 테이블 그래서 당신은 아주 잘 웹 사이트에 존재하는 그 테이블을 긁을 수 있습니다 여기에 두 가지 방법이 있습니다 하나는 기본적으로 개인 데이터를 긁는 것입니다

셀 값 및 행 값을 목록으로 추출하여 이제는 다음을 수행해야합니다 이 목록을 다른 하나의 데이터 프레임으로 변환하면 팬더를 사용하여 데이터를 읽으면이 HTML 메소드가 밑줄 친다 이 데이터 프레임을 활용하여 추가 분석을 할 수 있습니다 그녀는이 비디오가 우리가 웹에 대해 알게되었다고 결론 내리고있는 것을 잊었다 자료를 긁어 모으는 방법에 대해서도 알게되었습니다

앵커 단락 및 표와 같은 다양한 요소 또는 태그와 관련이 있습니다 그러한 데이터를 사용하여 기계 학습 모델을 구축하거나 일부 작업을 수행하십시오 데이터 분석은 여기에서 오늘의 질문은 괜찮습니다 질문은 그렇습니다 웹 사이트 데이터를 사용하고자하는 상황에 직면 해 있습니까? 분석 목적 및 추출한 기술은 무엇입니까? 그러한 데이터는 아래의 주석 섹션에서 의견을 공유하고 if 너는이 비디오를보고 있는데 너는 이미 우리 채널 구독자가 아니야

작은 가입 버튼을 클릭하는 것을 고려해보십시오 이미 가입 한 다음 배너 항목을 클릭하여 알림을받습니다 새 비디오를 공개 할 때마다 우리 랑 같이 놀아 줘서 고마워 다가올 비디오에서 다음 주제를 다룰 예정입니다 감사합니다

파이썬 네이버 웹 스크래핑 (Naver Blog Web Scraping with Python) (with 한글자막)

안녕하세요 이수안 컴퓨터 연구소의 이수안입니다 오늘은 파이썬으로 네이버 블로그 다 긁어오는 그런 제목으로 실습을 하도록 하겠습니다 목차는 웹 스크래핑이 뭔지 그리고 파이썬 관련된 라이브러리를 설치해야 하고요 그리고 네이버를 긁어와야 하니까 네이버 개발자를 설정해야 합니다 그리고 네이버에서 제공하는 API예제를 돌려보고 실제 네이버 블로그를 다 긁어올 수 있는 그런 스크래퍼를 한 번 만들어 볼게요 자 그럼 웹 스크래핑이 뭐냐 스크래핑은 HTTP를 통해 웹 사이트의 내용을 긁어다 원하는 형태로 가공하는 것을 웹 스크래핑이라 합니다 그래서 웹 사이트의 데이터를 수집하는 모든 작업을 의미하는 데 여러분 아실거에요, 스크래퍼가 뭐냐면, 이런 도구들 긁어내는 이런 도구들이 있는데 크게로는 땅을 긁는 이런 기게도 스크래퍼라 할 수 있습니다 그런데 스크래퍼랑 자주 쓰는 어떤 워드가 있는데 크롤링, 파싱 이런게 있습니다 크롤러라는 게 있거든요 '웹 크롤러' 그 단어에서 유래된 게 크롤링이에요 그래서 www, 웹을 탐색해서 하는 그런 프로그램이 크롤러인데 거기에서 유래된 것이 크롤링이고 그래서 웹사이트에 있는 문서들, 그림 이런 링크들을 좇아서 막 긁어오는 이런 것들을 크롤러라고 합니다 그래서 크롤링이 그러한 작업을 하는 것으로 거기서 유래된 단어이고 사실상 크롤링의 핵심은 데이터를 쉽게 찾을 수 있도록 인덱싱을 구축한다는 것입니다 이게 제일 중요한 차이점입니다 그리고 '파싱'이 있는데 어떤 페이지에 내가 원하는 데이터를 특정 패턴으로 해서 추출 그리고 어떤 정보를 가공하는 것을 파싱이라고 합니다 문자를 토큰단위로 분해하거나, 그걸 통해서 문자를 파스 트리로 만들거나 그런 것들을 파싱이라고 하는데 그래서 스크래핑이라는 차이점이 두 개 다 있다 라는 것을 알고 계시면 좋을 거 같아요 그래서 파이썬 및 라이브러리 설치 파이썬 사이트에 들어가셔서 설치를 하시면 되고요 자기 컴퓨터 버전에 맞게 설치하시면 됩니다 그리고 라이브러리 설치가 있는데 라이브러리도 pip명령을 통해서 총 세 가지가 필요합니다 beautifulsoup4, requests, lxml 이 세 가지를 이걸 보고 하시든 설치를 하시면 될 것 같고요 중요한 건 네이버 개발자 설정인데 처음하시는 분들을 위해서 제가 보여드릴게요 보면 오픈 API이용을 신청하셔야 돼요 그래서 '네이버 개발자'라고 여러분들이 검색을 하셔도 되고 이 주소로 가셔도 되는데 우리가 지금 검색에 대한 이용을 신청해야 되기 때문에 '오픈 API 이용신청'을 누르시고 그다음에 각 애플리케이션 이름 정하고 사용 API는 검색으로 하시고 그 다음에 Android로 일단 설정하신 다음에 Android 웹패키지 URL에 서식을 맞춰서 쓰시면 되고요 그걸 등록하기 하면 이런 애플리케이션 정보를 줍니다 이 Client ID랑 Secret을 꼭 받아야 합니다 우리가 이걸 이용해서 만들어야 하기 때문에요 자 그래서, 설정을 잘 하신 다음에 이거를 신청하시면 될 거 같아요 이게 먼저 잘 진행이 되어야 합니다 한 번 보여드릴게요, 네이버 개발자 저는 미리 되어 있긴 한데 네이버 개발자 센터에 들어가셔서요 여기 보면 메뉴에 '검색 API'있죠 검색에서 '오픈 API이용 신청' 누르면 됩니다 여러분들 네이버 아이디로 로그인 하시고 그래서 이 각각을 눌러주신 다음에 comexample

naverblog 하신 다음에 등록 누르시면 됩니다 그러면 이렇게 두 가지가 뜨죠? 이 Client ID와 Secret이 필요하다는 겁니다 이걸 가지고 우리도 한 번 진행을 해 볼게요 자 그리고 네이버 API 예제가 있는데 아까 제가 빠르게 지나가 버렸는데 네이버 API- 검색 보면은 Java버전, PHP버젼, Node js, Python, C# 이렇게 있는데 Python 이 예제를 긁어 옵니다 이걸 가져오고요 그럼 이제 파이썬을 띄워볼게요 파이썬 IDLE를 띄우시고요 여기서 새로운 파일 하나 만들게요 그래서 아까 긁어온 거 붙혀넣기 하시고 그 다음에 우리가 받아왔던 Client ID 넣으시고 그 다음에 Client Secret 넣으시고 검색할 단어를 넣으시면 됩니다 뭘 검색하냐면, 대통령 이름으로 검색해 볼게요 저장하고 '네이버 API'로 저장하겠습니다 F5 자 됐습니다, 눌러보면 지금 현재 네이버블로그에서 '문재인 '워드가 들어간 전체 블로그를 이렇게 보여주고 있습니다 어렵지 않죠, 네이버 API돌리니까 바로 되죠 자 그래서 이렇게 수행을 했고 돌리면 되는데 문제는 네이버 블로그의 어떤 형식에 맞춰서 우리가 긁어 왔는 데 이게 다가 아니라는 거죠 왜냐면 네이버에서 블로그를 제공할 때 이걸 제이슨으로 데이터를 주고 하는데 그 데이터가 사실은 어떤 요약된 그러니까 전체 블로그의 내용을 다 주는 것이 아니고 일부만 주고 있습니다 그런데 사실은 블로그에 대한 내용을 다 보고싶다 그럴 때에는 조금 개발이 필요해요 그래서 그거를 한 번 우리가 같이 작업해 보도록 할게요 그래서 새로운 파일을 띄워 볼게요 이거를 일단 저장부터 해 볼까요 저장은 NaverBlogScraper할까요 그리고 몇 가지 re, json, 그 다음에 수학함수 쓰기 위해서 math datetime requests urllibrequest urlliberror 그 다음에 parse 아까 우리 parse배웠죠? 그 다음에 bs4, beautifulsoup4 이렇게 하면 되고요 그 다음에 네이버 Client ID랑 뭐가 있었냐면 네이버 Client Secret이 있었어요 우리가 받아왔습니다 벌써 받아 온 거를 여기다 추가해 주시면 돼요 아까 제가 여기에다가 놓은게 있기 때문에 이걸 가져 올게요 여러분들은 여러분들 받은 것을 쓰시면 됩니다 제가 받은 걸 그대로 따라하시면 조만간 안될 거예요 저는 이거를 이제 정지시킬 거니까요 자 이제 메인을 좀 켜볼까요 if __name__=='__main__' 그리고 숫자를 저장할 것 실제 질의할 query 그 다음 display는 우리가 검색 할 때 몇 개 단위로 출력을 할 것인지에 대한 건수를 display할 수 있고요 start는 1, 1부터 우리가 하겠다 그 다음 정렬 방식은 similarity에 따라서 유사도순으로 할 거냐 그리고 날짜 순으로 할 거냐 두 가지의 옵션이 있는데 우리는 날짜순으로 할게요 최신 데이터를 긁어 오기 위해서 그 다음 파일 저장을 해야 하는데 fs 파일 저장을 위해서 정의를 하고 파일 저장은 txt파일로 하겠다 그런데 큐어리로 준 검색어에 따라서 검색어 이름을 가지는 텍스트 파일로 만들어 보겠습니다 타입은 당연히 utf-8로 하고요 그 다음에 blog count, 전체 갯수를 가져오기 위해서 전체 갯수를 가져와야 해요 그래서 blog count 왜냐하면 천 개 이상이 될 수도 있잖아요 천 개 이상이 되면, 천 개까지 밖에 못 긁어 옵니다 제한이 있어요 그래서 제한을 가진 상태로 천 개만 가져오기 위해서 이렇게 하는 거에요 이거 좀 이따가 할게요 fscolse하고 먼저 이 함수를 구현하고 뒤에 나머지를 칠게요 마찬가지로 get_blog_count를 만듭니다 이 함수에서는 질의, query랑 display를 받아올게요 그 다음에 인코딩을 좀 해줘야 해요 encode query 해가지고 아까 우리가 import했던 urllib에서 parsequote query를 이걸로 바꿔서 인코드된 형태로 바꿔줍니다 그 다음 openapi openapi 이렇게 바꿔주고요 + encode_query로 바꿔주고요 ullib

requestRequest(search_url) 이렇게 하면 우리가 만들었던 url형태로 요청하는 거에요 그런데 그냥 하면 안되요 그냥 하면 거부 당할 겁니다 이 api로부터 왜냐하면 네이버에서 받아왔던 ID와 Secret을 주지 않았기 때문에 거부 당하는데 이것을 주면 인증을 받았기 때문에 인증된 사람으로서 권한이 있기 때문에 우리를 허용해 주겠죠 responses = urllibrequst urlopen 그 다음에 response code를 좀 받아올게요 getcode 왜냐하면 코드를 여러가지 주는 데 과연 접속이 잘 됐는 지 코드를 받아서 보는 데 웹에서 200이 정상 접속이죠 정상적으로 접속했을 때 200번을 주죠 read, 이게 실제 읽어 들이는 거에요 body에서 dictionary 형태로 저장을 할게요 json을 가져올 텐데, 네이버에 이 질의의 결과로 json을 넘겨 주는 데 그 json을 dictionary로 다 저장합니다 utf-8, 모두 utf-8이에요 그리고 뭐가 들어 오는지 프린트로 모든 결과를 출력하는 것으로 한 번 해 볼게요 왜냐하면 다른 용도로 쓰실 분 들도 참고해서 사용하실 수 있도록 lastBuildDate이 있습니다 이거는 실제 json으로 넘어오는 것 중에 실제 최종 날짜 최종 만들어진 날짜를 반응해준 거고요 그 다음 total은 전체 갯수 Start display 이렇게 넣어 놓은 걸 한 번 출력해 보고 그리고 만약에 total이 0이다 검색된 결과가 없다 그러면 blog_count를 0으로 맞춰 줄게요 왜냐하면 나중에 반환을 해줘야 하니까 왜나면 이 함수 이름이 get blog count잖아요 전체 카운트의 갯수를 넘겨 주어야 되고요 total에 cell 함수를 통해서 전체 total이 만약에 display, 10개죠 10개로 나눠서 나온 결과 값을 여기다 넘겨줍니다 그래서 blog_total이 만약에 1000이상이다 그러면 blog_count는 1000으로 맞춰줍니다 그런데 그게 아니다 그러면 blog_count는 blog_total로 넘겨줍니다 이게 뭐냐면 천 개가 넘을 경우에는 제한이 있다고 그랬죠 그래서 최대 천개로만 이렇게 조건문을 넣어 줬고요 그리고 blog 전체 total과 count를 출력 해 볼게요 왜냐하면 이게 몇 개까지 받아오는 지를 보고 그 다음에 뭐 해야 되냐 return을 쳐줍니다 이렇게 return을 해주고요 이게 잘 되는지 한 번 확인 해 볼게요 중간에 오타가 났을 수도 있고 자 이렇게 에러가 나죠? 오타가 많네요 됐습니다 실했했고요 보니까 지금 검색된 '문재인' query로 검색해 보니까 굉장히 많은 숫자가 나왔고 이거를 다 긁어 올 순 없고 천 개만 blog_count를 조절해서 천개만 긁어오는 걸로 그러면 이제 sort를 "date"을 줬기 때문에 최신 글로만 천 개를 긁어 오겠죠 그리고 이제 만들어야 될 건 이제 이건 기존의 네이버 api랑 비슷한데 뭐가 필요하냐면 전체 블로그 포스팅 내용을 긁어오고 싶다 이럴 때는 우리가 코드를 추가해 줘야해요 글로벌로 변수 넘버랑 파일 시스템을 가져올게요 이거랑, 이거 좀 가져올게요 그리고 아까 그 코드 카드 좀 가져 올게요 이렇게 그냥 가져 오는 데 물론 이 뒷 부분을 좀 고쳐야 됩니다 왜냐, 이제는 그냥 질의만 날리는 것이 아니라 여기에 옵션을 좀 주어야 해요 우리가 질의 던질 때 display를 왜냐하면 연달아서 계속 할 거기 때문에 display를 옵션으로 좀 주고 start로 추가적으로 조건을 넣어주고 그 다음에 소스도 넣어줍니다 저장을 하고요 만약에 response코드가 200이면 정상이죠 response_body response-body_dict = jason decode 아까 우리가 했던 utf-8로 가져오고 그리고 정상인데 거기에 item_index로 json이 해당하는 블로그가 여러 개 나오면 그걸 다 하나의 큰 덩치로 주는 데 그거를 하나 씩 나눠서 접근을 하기 위해서 이렇게 코드를 쳐 줍니다 그래서 items라는 코드로 들어가 있고요 items 닫아주고 됐습니다 그 다음에 try 그 다음에 이렇게 tag가 들어올 수 있어요 그래서 그 태그부분을 지워서 사용해야 하기 때문에 우리가 regural expression으로 제거해주는 부분을 넣어주고요 그래서 regular expression에서 remove_html_tag 태그를 없애주는 정규표현식을 사용해서 만약에 태그와 관련된 부분이 들어왔을 땐 없애버려라 그래서 response_body_dict dict에다가 이제 여기에 item 그 다음에 item_index 그 다음에 title title은 블로그의 실제 주소를 의미합니다 그 다음에 link가 있습니다 그냥 가져올게요 링크는 주소가 오는데 그 주소가 쓸데없는 코드가 들어 갈 수 있어요 amp 저렇게 그래서 amp 이 부분을 없애주는 걸로 바꾸고 그 다음에 description description도 마찬가지로 태그가 들어올 수 있어요 그래서 description, item에 title말고 description으로 바꿔주고요 그리고 뭐가 남았냐면 blogger name blogger name은 blogger link 이거는 실제 포스트의 주소가 아니라 블로거의 블로그 주소가 있죠? 그 블로거 주소를 가져오는 코드입니다 그 다음은 Post Date인데 이거는 그냥 가져올게요 이렇게 변환하는 데 그냥 가져올게요 Post Date, 주는 대로 받아 오겠습니다 그러면 json에서 오는 결과들이 하나씩 items에 다 들어가 있는데 그 items에 있는 것들을 다 끄집어서 가져올게요 그 다음에 print, print를 하는데 이걸 좀 구분을 하기 위해서 구분자로 아무거나 구분을 해 줍니다 이건 블로그마다 파일을 쓸텐데 그걸 구분해서 보여주기 위해서 이렇게 하고요 그리고 이 #은 넘버의 의미로 제가 몇 번째 블로거인지 표시할 용도로 사용합니다 그 다음에 title link Description 그리고 blogger name blogger의 Link Date 이거는 실제 블로거의 포스트가 기재된 날짜가 나오겠죠 그 다음에 post code에서 이게 뭐하는 거냐면 저 정보들은 네이버 오픈api에서 제공해 주는 정보예요 우리는 그게 아니라 블로그에 실제 포스트된 내용이 필요하잖아요 그래서 그 내용을 긁어 오기 위해서 이제서야 BeutifulSoup를 사용합니다 그래서 BeutifulSoup을 통해서 다시 한 번 내용에 접근해가지고 가져옵니다 그래서 BeutifulSoup으로 선언을 해주고요 이 블로그에 사실은 특성이 있어요 네이버 블로그는요 마우스로 긁어오지 못하게 하거나 이렇게 오른 쪽 버튼을 클릭을 막기 위해서 iframe으로 다시 만들어 놓은 게 있는데 그래서 iframe의 frame이라는 html부분을 들어가야해요 들어가면 실제 그 블로거의 포스트 url을 뽑을 수 있어요 그래서 그거를 가져오는 데 그냥 가져오면 안되고 그 코드 url에서 "blog

navercom" + 그리고 메인프레임에서 get해서 소스부분을 가져옵니다 그래서 아이프레임에서 소스 부분에 이 코드를 가져 온 다음에 그걸로 접속을 해서 우리가 실제적인 블로그 포스트에대한 내용을 긁어오기 때문에 여기에 다시 한 번 blog_post_url이라는 주소로 접근을 합니다 그리고 그 텍스트를 가져오고요 text 그리고 blog_post 이거는 다시 한 번 또 접근해야 돼요 왜냐 접근했는데 iframe으로 매킹되어 있잖아요 그래서 iframe이 실제 주소를 가져오면 진짜 블로그 포스트에 접근 할 수 있거든요 그래서 거기에 접근하기 위해서 이렇게 우리가 사용을 합니다 그래서 이렇게 가져오고 BeautifulSoup으로 한 번 더 접근을 합니다 그리고 이게 진짜 blog 포스트에 대한 그 내용인데 여기에 실제 내용은 블로그 전체에 여러가지 메뉴도 있고 이러잖아요 그런데 postViewArea라고 있어요 그 postViewArea가 실제 블로그 내용이 여기에 들어가 있습니다 그래서 postViewArea로 선택을 해줍니다 이 태그로 선택을 해주고 그리고 이걸 이제 가져와야죠 이게 블로그 진짜 포스팅된 컨텐트에요 blog_post_content_text 그리고 스트링으로 캐스팅 해줘서그 컨텐츠를, 실제 내용을 가져옵니다 이제 전체, ufl discription만 주는 것이 아니라 전체 full 컨텐츠가 되겠죠 그런데 replace를 좀 해줄게요 replace로 뭘 해주냐 개인 문자 두 개가 있으면 그거를 하나로 바꿔 주는이런 걸로 좀 넣어줄게요 그 다음에 확인해서 프린트를 해도 되는 데 저희는 이제 파일을 좀 쓸게요 왜냐하면 전체 내용을 프린트 하려면 좀 많잖아요 블로그 내용이 긴 것도 많으니까요 그래서 이거는 파일에 써서 나중에 데이터 분석이나 활용할 때 쓰기 위해서 파일에 쓰도록 할게요 그런데 파일에서도 구분자가 필요하죠 구분자로 이렇게 포스트 마다 띄어서 구분할 용도로 가지고 있고요 그 다음에 except 만약에 못할 경우에는 그냥 넘어가자 그런데 거의 다 할거에요 그럼 이렇게 나오겠죠 진짜 잘 되는지 볼까요 아마 오타가 있겠죠 아 이거 안했구나 아까 우리가 메인에, 나중에 빼놨는데 그 부분을 해 볼게요 for start_index in range star, 1부터죠 우리가 받아온 카운트 갯수만큼 반복을 돌고 그만큼, get_blog_post, 접속해서 가져와야 겠죠 실제 블로그 내용으로 자! F5 아 이게 빠졌네요 F5 안되네요 천까지 긁어왔고 1부터 1000+1까지 돌아야 하는 데 안되고 있죠? 어디서 에러가 났어요 접속이 잘 됐는지는 출력을 한 번 해 볼까요? 자 접속이 잘 되고 있네요 이 부분은 통과해서 각각 가져오고 내용을 아마 이 부분이 좀 잘못된거 같아요 이 부분을 한 번 좀 볼게요 자 items 다 맞고 description이 틀렸네요 description 틀렸고 나머진 맞겠죠? 자 이렇게 블로그 실제 내용을 파일에 저장하고 있고 이렇게 계속 긁어 옵니다 총 갯수가 천 개이니까 천 개를 이렇게 긁어오는 스크래퍼를 우리가 만들었습니다 그래서 그 내용이 실제 파일에 다 저장을 하고 있겠죠? 저 파일에 쓰는 부분 그래서 이렇게 스크래퍼를 완성했습니다 자 이렇게 긁어 오는 거죠 그래서 이게 실제 네이버에 진짜 포스팅된 내용들을 다 긁어 오는 겁니다 그런데 여러분, 이 포스팅은 블로그를 운영하는 사람들이 올린 거 잖아요 그래서 수집을 하고 다시 이 내용을 어딘가에 공개하면 안됩니다 공개하는 것은 불법이에요 그러니까 이렇게 수집해서 분석용도로만 사용하시고 다시 공개는 하시면 안됩니다 이렇게 해서 네이버 블로그를 다 긁어오는 그러한 파이썬 코드를 만들어 봤고요 다음에 더 재미있는 강의로 찾아 뵙도록 하겠습니다 감사합니다

Grofers web scraping using python

여보세요 안녕, 알았어 안녕하세요 친구

좋은 아침 Ronnie 다시, 그래서 Steph 오늘 논의했다 어떻게 할 수 있는지 보여 드리겠습니다 officecom 웹 사이트에서 또한 인기있는 웹 사이트 중 하나를 대부분 차지했습니다 고객과 같은 구매 가정용 스토브 또는 다른 어떤 식료품 점에서와 같은 느낌이 든다

당신이 좋아하는 제품이나 식료품과 관련된 것 주로 여기에 웹 사이트를 열면 예를 들어 국내 및 상업 목적을 위해 그들은 이렇게 보입니다 그는 재고가 많은 제품이었습니다 우리에게 레벨 업을하는 것은 재미있을 것입니다 미래의 데이터 세트 또는 데이터 모델, 언제 우리처럼 시작할 것인가? 약간 기계 학습이나 심화 학습 또는 일부 데이터 분석과 관련된 의사 결정 작업 우리가하는 활동 강제로 할 수 있습니까? 우리가 스크랩 할 첫 번째 것 총 제품 수와 같음 가격 나는 이것이 재미있을 것이라고 생각한다

좋아요, 각 제품에 따라 변형 수가 다를 수 있습니다 예를 들어, 이것은 두 가지 변종과 예를 들어,이 제품은 단 하나의 변종입니다 그래서 이것은 또한 재미있을 것입니다 이것이 실제로 어떻게 보이는지 보겠습니다 분리 된 이 제품 카테고리를 통해

그래서 그는 무엇을 할 것인가? 어쩌면 이름 – 브랜드를 스크랩하십시오 모든 제품에 브랜드가 있는지 여부가 확실하지 않습니다 예, 그들 중 몇몇은 브랜드를 가지고 있지 않습니다 브랜드에 대한 정보가 없습니다 그래서 우리는 할인처럼 보일 것입니다

실제 가격 표시된 가격 나는 잘 모르겠다 어쩌면 너는 필요할지도 모른다 그들이 뭐든간에 가능하면이 살충제에서 긁어 낼 것입니다 그럼 실제로 어떻게 보이는지 보자 그래서 예를 들어, 조금은 사소한 일을 최소화하겠습니다

그건 그렇고, 내 몸은 이미 죽었어 수업에 참여한 학생 알았어, 알았어 의문의 여지가 있다면 차트를 보내주세요 Let 's Live Meeting 괜찮아? 좋아, 완벽 해

좋아, 그러자 알았어 이것이 무한 스크롤과 그 안에는 몇 가지 JavaScript가 있습니다 배상 일부 HTTP 요청 헤더와 매개 변수와 이것은 스타 일을하고있다 이것은 실제 이야기를하고 있습니다

그래서 우리가 만트라 닷컴으로 한 모든 일과 같이 마지막 비디오가 마음에 들지 않을 것입니다 페이지가있는 페이지의 고정 페이지 매김은 한 페이지와 동일합니다 이것은 조금 다를 것입니다 그리고 그것은 재미있을 것입니다 예, 우리는 몇 가지 어려움에 직면하게됩니다 더 많은 오류 또는 더 많은 예외가 재판에 부딪 힐 것입니다 하지만 어쨌든, 나는 이것을 수행 할 것입니다 걱정하지 마십시오 그래서 무언가가 존재하는지 아닌지 먼저 확인해 봅시다, 그것이 존재하지 않을 것이라고 믿습니다

괜찮아 그것은 거기에있다 그러나 이것은 아마 그것이 그렇다라고하는 것이 어쩌면 그것은 아마 일부에서 올 수있다 이거 괜찮은거야 여기에 간다 뭔가 여기에 올 것이다

너는 알았다 우리가 요청한 것 같습니까? 좋아요, 그래서 이것은 중요한 것입니다 어디서 실제로 그것은 더 크다 요청 URL입니다 괜찮아 이 매개 변수 또는 머리글 및 쿼리 매개 변수입니다

괜찮아 문자열 응답을 확인합시다 괜찮아 모든 것이 여기에 온 것을 보아라 잘못된 장소를 클릭하십시오 좋아, 그럼 이걸 목표로 삼자

전화해서 불렀다 그럼 내가 너에게 보여 줄게 이것은 전화입니다 직접 작성할 수 있습니다 요청을 통한 요청의 HTTP 요청 도서관 파이썬을 사용하지만, 다시 전체 코드를 다시 쓰지는 않을 것입니다

따라서 매우 좋은 코드가 하나 있습니다 웹 사이트, curl 명령을 입력하면 거기에 보여 드리겠습니다 이것을 파이썬과 같은 것으로 변환 할 것입니다 이처럼 타이핑을 피하십시오 모든 것이 실제로 보이면 여기에 있습니다

기음 이 모든 것을 인코딩하는 것은 크롬에서 나온 것입니다 그래서 그것은 단지이 헤더를 두 개로 바꾸는 것입니다 이것은 일반적인 코드 조각입니다 이것은 정상입니다 그래서 우리는 이것을 사용할 것입니다

걱정 마세요 시작하기 만하면됩니다 괜찮 았어? 알았어, 내가 다른 수입품을 가져올거야 나중에 부분 파일 몇 가지 괜찮아

좋아 어쩌면 시작합시다 인쇄 응답이므로 200을 반환해야합니다 먼저 실행 해 봅시다 응답이 커지고 있음을 의미합니다

우리에게 여분의 것, 나는 당신이 그것을 볼 것이라고 생각한다 좋아, 이상해 일부 인코딩을 완료해야합니다 이상한 일 이죠, 그렇죠? 괜찮아 좋아, 아마 내가해야 할 것 같아 오케이, 멋지다

그래서 그 중 일부는 전혀 필요하지 않다고 생각한다 먼저 체크하자 이것도 금이 간다 먼저 체크하자 예, 이것이 필요하지도 않은 것 같아요

이것은 또한 요구되지 않습니다 우리가 다른 세 가지를 중요하게 만들지는 못하지만, 이것이 필요한 것은 오직 우리가 할 수 있다고 믿습니다 만약에 – 또한, 어쩌면 몇몇을 논평하십시오 um 우리가 이것을 나중에 논의 할 지 모르겠다 하지만 지금은 이것이 우리의 전체 데이터입니다하지만 우리는 단지 좋아, 이거 야

카테고리 16 이것은 96 번호 제품부터 시작됩니다 다음 번에 48 번을 의미 할 때까지 번호 96 좋아,하지만 흥미로운 점은 카운트가 0이되도록해야한다는 것입니다 우리가 우리처럼 달릴 필요가있어 단 한번의 요청만으로도 제품을 보류 할 수있는 또 다른 시간을 요청합니다 우리는 전체 데이터를 얻어야한다

그래서 내가 뭘할지 어쩌면 하나 둘 폰 본문 이 데이터를 빠르게 인쇄하여 흥미로울 것이라고 생각합니다 괜찮습니다 여기에 던질만한 가치가있는 것을 선언하지 않았습니다 나는 그것을 지금 할 것이다 그래서 나는 나는 그것을 어둡게해야한다고 생각한다

나는이 메타를 사용해야한다고 생각한다 벌금 뭐, 이걸 여기 복사 해 돌아와야한다 결과 카운트 그래서 카운트 같음 2/3 나는 이것을 사용해야한다고 생각한다 이건 괜찮아

이것은 우리 일을 할 것입니다 나는 괜찮다고 생각해 이제 우리는 이것을 실행할 수 있습니다 의회 이 코드를 한 번 더 실행하려면이 코드를 복사하십시오 매개 변수가 함께 업데이트 됨 이 또 하나, 하나 였어, 알았어

쎄타 1은 2와 같다 제이슨 도트로드 였다 116 Turn SS가 한 번 더 인쇄 해 봅니다 나중에 하나 실행 해 봅시다 네, 모든 것이 괜찮습니까? 네, 다 괜찮아요

이제 너는 ~해야 해 좋아, 나는 생각한다 그러면 제품 부분이 실제로 여기에서 시작됩니다 여기에서 나온 제품을 확인하십시오 다른 데이터 가져 오기 그때 쎄타 1 생각하다 그리고 인쇄 그런 다음 여기부터 시작해야합니다

읽는 부분이이 부분에 관심이 있는지 확인해 봅시다 나는 데이터를 가져올 권리가 있다고 생각하십시오 미안 토양 친구들 오 나는 이것이 더 이상 필요하지 않다고 생각한다 반드시 필요한 것은 아닙니다

우리가 필요한 건? 모든 데이터 좋아 그럼 지금 이 파일을 하나의 파일에 쓰게하고 그 파일을 열면 그 다음에 한 가지를 확인해 봅시다 이 길이는 얼마입니까? 반환해야합니다 인쇄 그것은 같은 3 백 7 개의 항목을 반환한다 그러나 이유를 모르겠다는 이유를 알리는 답은 211 건입니다 네가 같은 데이터를 가지고있는 것 같아 단계 길이는 괜찮은지 이해하고 있습니까? 미안해하셔야합니다

그것은 단지 타이밍을위한 것입니다 이상한 점, 확실하지 않습니다 이게 뭐지? 내 시작 카운트가 96 초라는 실수를 했어 그래서 이것이 그것이 있어야하는 이유입니다 제로 콩 좋아, 지금은 제품에 돌아오고있다

그래서 괜찮 았어 이것을 파일에 작성한 다음 열어 보겠습니다 어쩌면 Records txt라는 이름으로 그때 이 한 점 오른쪽으로 같지 않음 string 이 문자열을 변경하는 것은 Nam 문자열이 아닙니다 점 친한 친구로 이동하십시오 우리가 문자열로 만들지 않으면 중간을 얻을 것 같이 볼 수 있습니다

그래서 내가 너에게 보여줄거야 이것은 문자열 사전이 사전 사전 개체가 아닙니다 자, 돌려 보겠습니다 아니, 미안해 내 데이터를 모두 다 가져야 했어

커피 오른쪽 인수는 사전을 늘리지 않아야합니다 그래서 우리는이 다른 문자열을 변환해야합니다 그럼 이제 이건 괜찮을거야 처음 보자 만약 당신이 파일을 완성했다면 어딘가에서 내가 클립을 사용하고 있기 때문에 새로 고침을시켜야합니다

매번 억지로 눌러야합니다 Kafirs 내부에 만들어진 오 케이스가 범위 지정을 강조하므로 여기 내 여행 작업 공간에 갈 수 있습니다 그럼이 텍스트를 지금까지 열어 보겠습니다 괜찮아 이것은 좋은 일이다 크리스토퍼 잡으세요

내가 열어 보자 이 파일이 있으면 볼 수 있습니다 괜찮아 이제 네가 내가 제품에 대해 말했던 것처럼 제품에 10 kg 5 kg이있을 수 있으며 2 kg와 같이 다른 변형이있을 수 있으며 그 중 일부는 변형이 없습니다 그래서 우리의 중요한 부분은 변종처럼 열쇠와 내부가 가치처럼 전체가 아닌이 물건 안에 있습니다 거기에 이렇게 당신은 볼 수 음 제품의 가격 할인 모든 것이 여기에 나열되어 있습니다

거기에 명시 적 할인이라는 무언가가 있습니다 또한 주요 마크 업은 여기에 있습니다 네가 이렇게되면 다음에 네가 시작해야 해 요즘 먹는 444 21 좋아요 이것은 5kg입니다

34이야, 알았어 그리고이 경우 할인은 20 %입니다 코즈 1 35 가격 할인은 20 % MRP는 할인 어딘가에 있어야합니다 예 모든 것이 거기에있다

당신이 볼 수 있다면 우리의 주요 부분은 우리가 가지고있는 변종의 내부와 같은 것입니다 변형의 일부는 두 요소가있는 요소 중 하나를 갖는 모든 것을 얻습니다 그들 중 일부는 세 가지 요소를 가지고 있습니다 그래서 우리는 다칠 필요가있다 그래서 이걸 가장 가까이 가게 해줘

그래서 지금까지 모든 것이 괜찮습니다 그래서 나는 이것을 쓰지 말아야한다고 생각합니다 그리고 우리는 이 부분도 탈출하고 필요하지 않습니다 여기있을 수 있습니다 그래서 그래서, 너무 많은 변수를 만드는 또 다른 것을 만들지 만, 걱정하지 마십시오

나는이 비디오와 다가오는 비디오를 위해 어떤 모듈 식 접근도 따르고 있지 않다 우리는 oops 개념 클래스 메소드와 다른 것들을 시작하려고합니다 그런 다음 우리는이 모든 것을 사용할 것입니다 당신과 같은 모든 프로그램과 같은 프로 시저를 통해 그러한 것들을 적용 할 수 있습니다 그러나 다시 한번, 함수 프로그래밍 만 기억하십시오

논리는 동일 할 것입니다 우리는 더 많은 프로그램을 더 모듈화 할 것입니다 이해하기 쉽고 좋아질 것입니다 메모리 최적화와 같은 몇 가지 공간에서 몇 번이고 코딩 비용은 더 적을 것입니다 동일한 메소드를 반복해서 사용할 것입니다

다른 클래스의 객체를 인스턴스화하는 것처럼 당신은 무엇을 말합니까? 그래서 지금은 클래스 객체와 메소드 및 생성자로 시작하려고한다면 학생들의 일부는 이해하기가 어려울 것입니다 그 중 일부는이 컴퓨터 프로그래밍을 좋아하는 데있어 매우 새로운 기술입니다 그래서 나는 단지에 집중하고있다 함수형 프로그래밍 언어로서의 파이썬 어쩌면 다음 달 나는 우리를 시작할 것이다

파이썬에서 객체 지향 개념 그리고 나서 여러분은이 프로그램을 정상적인 기능으로 변환하기 위해 자신 만의 접근 방식을 사용할 수 있습니다 모듈 식 접근법에 따라 프로그래밍 또는 기능하지만 그것은 동일 논리가 항상 동일합니다 그래, 데이터도 될거야 그리고 예를 들면 얼마나 많은 요소가있어 그래서 우리의 루프는 내가 말하는 것처럼 될 것입니다 나는 범위 안에있다 나는 그것이 카운터 일 것이라고 생각한다

데이터 3 데이터, 나는 이것이 모든 엘리먼트 1을 1 라운드 인쇄 할 것임을 믿습니다 선상에서 실제로 그렇게하는지 아닌지 알 수 있습니다 지금이 직업을 완료했는지 확인하십시오 데이터 4는 2 델타 3 과 변형 정보 그것은 다음은 내가 건너 뛰면 지금부터 보게 될 것입니다 먼저 이걸 가져 가자

나는 우리가 약간의 거울을 얻을 것이라고 생각한다 당연하지 나는이 부분을 완성했다 변형 정보 저장소가 사라 졌음을 확인하지만 지금은 흥미로운 점이 있습니다 계수기 하나는 임대료와 같다

이 에 대한 데이터와 우리는 for 내부에서 J에 대해 다른 for 루프를 실행하려고합니다 범위 예, 변종 내부에 많은 요소가 있으므로 이해하시기 바랍니다 그래서 우리는 거기에 기반을 둔 요소의 수를 확인해야합니다 우리는 이것을 반복 할 것입니다 예를 들어 무작위로 선택하면 아무 것도 색인과 같지 않을 것입니다

범위를 벗어 났거나 0을 찾았으므로 방금했습니다 루프가 정확히 실행되도록 만들기 만하면됩니다 이와 같은 횟수는 같은 수와 같아야합니다 이 요소 내부의 요소이므로 해당 데이터가있는 경우 그 다음 다섯은 베타 4 참조 그래서 그것은 또한 이제 목록을 시작할 것입니다 그것을 시작합니다 시작됩니다 그래서이게 나를 그냥하자

가져와 어디 보자 여기 무슨 일이 일어나고있는거야? 이걸 먼저 돌리시겠습니까? 좋아 이제 우리는 우리가 필요로하는 것이 무엇인지와 같은 것들을 식별 할 필요가있다 이 파일을 열면 좋아, 나는해야 해 내가 좋아하기 때문에 여기에서 다른 옵션을 사용하지 마십시오

그래서 독서는 괜찮습니다 단위가 한 가지입니다 kgs 공간 SVC 할인 및 SVC 가격이라고하는 항목이 있습니다 여기에 나열되어 있습니다 너도 알다시피

그렇다면 이것이 필요하지 않다고 생각하고 있습니다 그래서 한 가지는 SVC 가격입니다 좋아요, 두 가지는 점수 가격을 보는 것입니다 좋아, 보자 이 크기가 3 가지 일 필요가 있습니다

우리는 이미 목록에 그들은 세 가지가 이미 해제되었습니다 여기에 세 가지가 나열되어 있습니다 그러니 대부분의 사람들이 어쩌면 내부 목적으로 사용하고있는 것처럼 보일 것입니다 나는 내가 할 수 없다면 내가 볼 수 있다고 생각해 예, 쿠폰이라는 것을 보았습니다

네 가격은 시장에 있을지도 모른다면 거기에있을 것이다 네, M 기사도 완벽하게 잘 어울립니다 좋아, 내가 먼저 제품을 확인해 줄까? 어머니의 선택이 성장할 것이라고 생각하지만 꽃에 나는 라인이 상품을 강조한다고 강조합니다 난 괜찮아 너는 이걸 복사 해줄 게있어 그래서 제품 이름 I에 이것처럼이 벌금 쓰기 우리는 패키지와 모든 것을 먼저 얻었다

준비가 되었다면 당신이 필요하다고 생각합니다 그런 다음 MRP 가격을 써야합니다 그때 MRP 그 MRP 다음 실제 가격 가격 좋아, 지금은 무엇을 제공하고 있니? SVC라는 제품은 이 혼합 밑줄 제안에 특별한 할인 쿠폰 당신이 옥수수 제의 밭을 떠났는 지 확인합시다 괜찮 으면 괜찮을거야 좋아, 그렇게 될거야

이 때 SVC는 언더 스코어 제안을 스니핑하기 위해 밑줄을 긋습니다 나는 우리가 창조했다고 생각해 이 것은 아니요, 예를 들어 이것을 인쇄하는 것을 싫어합니다 데이터 라인은 2와 같습니다 나는 우리가이 줄에서 예를 들어 직접적으로 좋아할 수 있다고 생각한다

그러나 다시, 여러분은 이것을 문자열로 다시 변환해야합니다 필수 사항은 아닙니다 나는 불멸의 존재가 될 것이라고 생각한다 그때 시장 가격 I MRP에 시장 가격 제시가 필요하다고 생각하십시오 그런 다음 ACC는 제안을 강조합니다

나는 그 자리에 기초하고있다 괜찮다고 생각해 내가 아는 지 안다 이 라인을 인쇄 할 때 우리가 확신 할 필요가 있다고 생각하는 라인이 있었습니까? 그래서 이것은 이렇게 될 것입니다 그래서 모든 것이 잘되면 그것은 아이들이다

예기치 않은 내륙의 괜찮아 존중받는 동안 확실하지 않다 괜찮아 떨어져 너를 넣어 너무 많은 우와, 헤이 놀리는 들여 쓰기가 나쁘다 알았어 늦었 어

아마도 이걸 계속하자 이름 너 안녕, 안녕 필요하신 분 멀티 가격이 책정 된 실제 가격 제안 SPC 제공 가라 이 PC는 종종 내가 밑줄을 긋는다 그들이 달려야한다고 생각해

그러나 나는 모든 것이 같은 줄에 올 것이라고 믿는다 너도 알지 확실하지 않은 사람은 마음을 바로 잡을 권한 너 한테 일어날거야 그 자체로는 디코딩 할 수 없습니다 점검 해보자 좋아, 실수 한거야

이름 등급 무게 가격 실제 가격 버퍼,이 인쇄가 괜찮아요 권리 하지만 나는 믿는다 그만큼 움직이는 실제 가격이 바쁜 제안입니다 괜찮아 그런데 왜이 테마와 같은가? 들리다 좋아요 데이터 라인이 여기에 있습니다

그래서 우리는 헤더로 새 파일 만들기 그리고 이걸 열어 보자 우리가 여기서 이것을 필요로 할거야 아마도 하나의 파일을 만들어 보겠습니다 쓰기 모드 그리고 그 안에 내가 모두 넣을거야 내 머리글 좋아해

목 이름 콤마 그 안에 콤마 13 쉼표 MRP 실제 가격을 실제 가격으로 표시했다고 생각합니다 나는 우리가 제안 부분을 놓쳤다 고 생각해 실제 가격을 따랐다 또는 아니오, 제 생각에 아니, 최종 결과가있다 제안 및이 누락 된 제안 끔찍한 슬래시와 그림을 다음 줄에서 다시 시작해야하는 것은 아닙니다

그럼 벌금이 닫힙니다 그리고 나서 우리는 같은 파일을 열 것입니다, 그러나 이번에는 일어나는 모드에서 우리가 여기서 할 수 있을지도 몰라 나는 데이터가 될 것이라고 생각하십시오 1 호선 그래서 이 루프가 실행될 때마다 닫기를 인쇄하고 루프에서 빠져 나옵니다 이 같은 일이 일어날거야

그래서, 이것이 이루어 졌다고 믿습니다 프린트가 완료되고 어쨌든 다시 가열됩니다 아마이 파일을 지우고있을 뿐이에요 그래서 우리가 실제로 모든 레코드를 긁어 모으고 있는지 아닌지를 이해하는 것이 더 쉬울 것입니다 먼저 이걸 실행합시다

생각 해보신 후, 처음으로 상쾌한 것을 확인해 보겠습니다 알았어 파일 하나 하나에 다른 문자가있어 괜찮아 하지만 뭐였지? 40 바이트 였어, 알았어 왜 데이터가 여기에 왔는지 확실하지 않습니다

사실 그것은 마지막 행만 알았어, 내가 실수 한거야 어떤 추가 모드 여야합니다 괜찮아? 그래서 이것은 내가 당신에게 말한 것처럼 새로운 학습 권리입니다 내가 추가 할 것이라고 말했을 때 나는 그것을 열 필요가 없다 그래서 처음으로 우리는 올바른 동기로 파일을 열지 않습니다

그러면 새 파일이 만들어지고 그 후에 우리는 이름을 짓습니다 펜 이니? 이제 나는 그것을 믿는다 이 실제 CSB 그러나 그것은이 물건을 쓰지 않았다 베드로의 머리가 사라졌습니다 확실하지 않다 그는 히터 기다리기가 확실하지 않습니다

에이다는 거기 있어야 해 먼저 이 헤더의 이름으로 식별하고 그런 다음이 모드로 같은 더미를 열었습니다 이상적으로는 거기에 있어야하지만 보이지는 않아야합니다 무슨 일이 있었는지 잘 모르겠다 다시 이걸 실행 해 봅시다

하지만 이번엔 그냥 하지 않을 것이다 파일을 열고 닫을 수 있지만 보겠습니다 여기에 헤더를 쓰지 않습니다 괜찮아 주요한 문제는 여기 저기에 또 하나의 루프가 열려 있다는 것입니다 이것은 실제로 문제를 만들고 있습니다 나는 그것을 닫는 것을 잊었다

그럼 괜찮아 이제 예와 같이 작동합니다 뭔가 지저분해질 것입니다 이유를 이해해야합니다 이상적으로 그것은 작동해야합니다

모든 것이 여기에 온 것을보십시오 Excel에서 열 수 있습니다 나는 비어있는 것처럼 Excel을 가지고있다 다음 번과 마찬가지로 Excel에서 직접 열려면 다음을 사용하십시오 Numpy soar pandas는 X 및 일부 Python 라이브러리에서 열 수 있습니다

그래서 구분 된 것처럼 그 다음에 그들은 쉼표가 될 것이라고 믿습니다 괜찮아 모든 것이 여기에왔다 괜찮아 일부 문제는 몇 가지 문제가있다 모든 것이 같은 줄에 올랐다 나는 올바른 일을하고 있었지만 콘솔에 잘못된 것을 보여주는 이유가 확실하지 않은 것 같습니다

우리는 지금 그것이 작동해야한다고 생각할 필요가있다 파일을 다시 열어 보겠습니다 이제 모든 것이 멋져 보이네요 멋지네요 끝 잘 보아라

필요한 타이틀 이름 Frattini mark P 실제 가격으로 HPC 제공 내부 전체 항목 식료품 점과 물림쇠가왔다 왜 이것이 3:06 사람이 아닌지 우리가 찍은 이래로 그 수는 307이어야한다 아니요, 일부 제품에 여러 변형이있는 것처럼 제가 말씀 드렸듯이 이것은 올바르지 않습니다 예를 들어, 이걸 볼 수 있다면 두 개를 본다면 이것 또한 보세요, 이것은 또한 2입니다 이것은 또한 2와 같습니다

하나는 10 kg 1은 5 kg입니다 그래서 그 이유는 삼 이것은 200 kg에서 2입니다 이것은 200 kg으로 2입니다 미안 200 g 1 갑판이 아닙니다 보기 어려움 200 그램 500 그램 1 킬로그램 이렇게 3 개의 이체, 맞았던가? 너무 멋집니다 좋은 사람들, 그래서 이런 식으로, 너는 네가 할 수있어 다른 웹 사이트에서 긁어 모으 듯이, 다시 말하지만, 이것은 완전히 교육적인 목적을위한 것입니다 어디서나이 데이터를 사용하지 않을 것입니다

나 또한 곧바로 이걸 지울거야 그러나 나는 학습 목적을 위해 비디오를 확실히 발표 할 것이다 이 데이터를 사용해서는 안되며이 데이터를 배포하지 말아야합니다 이것은 일부 회사 또는 일부 웹 사이트에 대한 완전한 지적 재산권 또는 기타 학습을 위해서만 학습 목적으로 만 사용하십시오 그것들을 오용하지 마라

내 채널을 시청 해 주셔서 감사합니다 언제든지 공유 할 수있는 비디오가 마음에 들면 친구와 공유하기 위해 아무 것도하지 마십시오 페이스 북의 whatsapp Instagram 링크에 대한 기회 내 친구는 나에게도 슈퍼가되어 새로운 느낌을 시작하려고한다 수업 내용에 대한 기계 학습 및 Python 튜토리얼이 거의 준비되었습니다 우리는 4 월말이나 5 월 첫째 주에 시작하려고합니다

새로운 웹 사이트를 방문하십시오 나는 갈거야 몇 가지 동영상의 모든 내용을 다가오는 동영상에 올릴 수도 있지만 지금은 채널을 시작했습니다 우리는 더 많은 가입자를 찾고있는 귀하의 지원을 기다리고 있습니다 그것은 우리를 도울 것입니다

독창적 인 콘텐츠를 만들어 내도록 동기를 부여합니다 보시다시피, 우리는 단지 youtubes에서 사용할 수없는 독특한 컨텍스트를 제공하는 것입니다 우리는 여러 개의 아주 좋은 채널이 있다는 것을 알고 있습니다 거기에는 6 개월 7 개월 동안 YouTube에서 뭔가 배울 수 있습니다 또한 파이썬에서 Vito와 같은 장소에서,하지만 지금 나는 뭔가 예를 들어, 당신이 말할 수있는 모든 것을 아는 것이 아닙니다

나는 파이썬의 한 사람을 압니다, 그래서 저는 여행과 같은 모든 것을 당신과 공유하고 있습니다 동영상 공유 그래서 이것은 자습서 나 이것과 비슷한 것이 아닙니다 자습서를 확실히합니다 그러나 다시 이것은 라이브 워크샵입니다

그렇게하면 긴 비디오와 다음 비디오를 즐길 수 있습니다 어쩌면 당신은 하나의 큰 바구니를 만들 계획입니다 어떤 다른 작품은 당신이 비슷한 것을 가지고 있다면 우리는 그것을하기를 원합니다 우리가 Facebook 페이지에 어떤 의견이라도 언급하여 알려 주시기 바랍니다 YouTube에서 벨 아이콘을 사용하여 채널을 구독해야합니다

따라서 동영상을 업로드 할 때마다 알림을 받게되므로 즉시 알림을 받아야합니다 하지만 지금은 우리가 당신의 지원이 필요합니다 우리는 성장하고 싶습니다 우리는 더 커지려고합니다 우리는 더 큰 청중의 일부가되고 싶습니다

그리고 우리가 자라면 자랄 겁니다 자네가 제대로 갈 것입니다 따라서 구독을 마치고 4 주가 지나면 diff로 공유하도록하십시오 나는 14 일에 그렇게 생각한다 그리고 우리는 잘 해나 가고 있다고 생각한다

청중의 반응과 모든 사람들의 반응 이 동영상을 시청 해 주셔서 감사 드리며, 이번 주에 시간을 낼 때마다 더 많은 동영상을 올릴 수 있기를 바랍니다 나는 같은 종류의 기본적으로 독일 전역에서 휴가가있었습니다 그래서 나는 지난 3-4 일 동안 사무실에 가지 않고 있었어 그래서 나는 그 모든 비디오를 게시합니다 하지만 그래, 앞으로 몇 주 안에 더 많은 비디오를 올릴거야

아니면 내일 또는 내일이 지나면 시간을 가지기도합니다 하지만 그들과의 우정이 오늘이나 내일까지 더 많은 동영상을 공유한다면 이것은 또한 그가이 아이디어로 나를 도왔던 것과 같습니다 그래서 불행하게도, 그는 지금 고객 회의에서 다시 한 번 곧 동영상 그래서 너희들은 다시 한번 너를 아주 많이 감사했다 좋은 날

안녕

Ebay web scraping with Python and Beautiful Soup: demand research | Projects

안녕하세요 여러분, 오늘은 또 다른 프로젝트가 있습니다 이베이 웹입니다

스크래퍼 당신이 eBay 사업을 시작하여 일부를 판매하기를 원한다고 상상해 봅시다 높은 수요가 있고 그것을하는 제품 당신은 판매 할 틈새 또는 제품을 선택해야합니다 그래서 당신은 어떤 것을 얻을 필요가 있습니다 이베이 마켓 플레이스의 현재 상황에 대한 데이터

그리고 그 중 한 가지 방법은 필요한 데이터를 수집하는 것은 제품 또는 카테고리에 대한 수작업 연구를하는 것입니다 상품 그러나 그것은 지루하고 시간이 많이 걸리는 작업이지만, 일부 Python 프로그래밍 기술은 필요한 데이터를 거의 자동으로 수집하는 데 도움이됩니다 그리고 오늘 우리는 일부 데이터를 수집 할 ebay 웹 스크래퍼를 작성하고 CSV 파일에 기록하십시오 시작하자

ebaycom 웹 사이트를 열고 I 남성 시계 카테고리를 연구하고 싶습니다 나는 검색 창에 검색 요청을 입력하고있다 – "men 's watch"와 우리는 얻었다 검색 결과 한 줄의 코드를 작성하기 전에 수동으로해야합니다

eBay 웹 사이트를 탐색하고 스크레이퍼를 어떻게 할 것인지 결정하십시오 그럼 열자 1) 제목, 2) 가격, 3) 판매량을 수집하고 싶습니다 항목은 여기에서 또는 여기에서 얻을 수 있습니다 그래서 Scraper는 다음을 할 것입니다

1) eBay 웹 사이트에 요청하고 색인 페이지의 HTML 코드를 가져와야합니다 이 제품 제품 목록이있는 페이지

2) 그러면 모두를 수집해야합니다 세부 페이지 링크 이 하나,이 하나,이 하나, 등등 3) 그리고 나서 필요 데이터 – 제목, 가격 등을 파싱하고 4) 데이터를 CSV 파일

우리 스크레이퍼를 쓰자 프로젝트 폴더를 생성하고 새로운 'ebay_scrapperpy'라는 이름의 파이썬 스크립트 이제는 파이썬 라이브러리 그래서 저는 파이썬 3을 위해 'pip3'을 사용하고 있습니다

윈도우즈를 사용한다면 운영 체제에는 'pip'가 하나만 있습니다 그래서 'pip3 설치 요청을 사용하고 있습니다 beautifulsoup4 lxml' 이미 설치했는데 다음에는 Scrapper의 진입 점을 만듭니다 'main 인 경우'차단 IF 조건은 파일이 'ebay_scrapperpy'가 콘솔에서 직접 실행되었는지 여부

파일이 콘솔에서 실행하면 __name__ 속성은 '__main__'과 같지만 파일을 다른 스크립트로 가져 오면 해당 __name__ 속성에 이름이 포함됩니다 파일의 'ebay_scrapper'이 경우 name 속성은 'ebay_scrapper

py' 이 블록이 True를 반환하면 main () 함수는 다음과 같이됩니다 라는 그래서 잠시 동안 새로운 함수 main ()을 생성하고 있습니다 main function ()은 허브의 역할을 담당 할 것이고, 다른 것의 호출을 관리 할 것이다 우리는 긁힌 데이터를 수집 할 것입니다 여기에 '할 일'목록을 붙이고 싶습니다 다음 단계는 eBay의 페이지를 얻는 것입니다

그래서 우리는 이베이에 대한 요청 새로운 함수를 정의하고 이름을 지어 봅시다 URL 주소를 인수로 취하는 get_page () 그리고 get_page () 함수 우리가 설치 한 Requests 라이브러리로 요청할 것입니다 지금 가져 오기 가져 오기 요청 ' get_page () 함수 내부에서 나는 응답을 포함 할 새로운 변수 '응답'을 생성합니다

ebaycom 서버 '응답'변수는 다음과 같은 호출과 같습니다 요청 'get () 메소드

get () 메소드는 URL 변수를 논의 다음

main () 함수의 본문에서 'url'이라는 새 변수를 만듭니다 이 세부 정보 페이지의 주소와 같습니다 우리가 필요한 데이터를 긁어 내고 모든 것을 긁어내는 기능을 추가 할 것입니다

내부 페이지에 대한 링크 그래서 우리는 get_page ()에 전달한 상세한 페이지 URL을 가지고 있습니다 함수를 호출하고 get_page () 함수를 호출하여 URL에 전달합니다 변수 여기 get_page (url)

다음 우리는 여기에 요청을합니다 서버가 다르게 응답 할 수 있습니다

"404 찾을 수 없음"으로 응답 할 수 있습니다 요청한 리소스가 없거나 우리에게 액세스 및 403 오류 등으로 응답합니다 그리고 좋은 생각은 서버가 어떻게 반응하는지 확인하고 ok 속성과 응답의 status_code 속성 – 응답 변수는 Response 클래스의 인스턴스입니다

그래서 우리는 이것을 사용할 수 있습니다 그러한 검사를 수행 할 속성 예 : print (responseok) 우리는 True를 얻었습니다 그것은 이베이 서버가 우리에게 성공적으로 응답했음을 의미합니다 또한 우리는 status_code 속성을 사용할 수 있습니다 우리는 200을 얻었습니다

200은 서버가 응답했다는 것을 의미합니다 성공적으로 굉장해 이제는 새로운 IF-ELSE 조건을 생성합니다 '아니라면 responseok', 그 어떤 상태 코드를 수락 200

그래서 괜찮지 않다면 서버가 성공적으로 응답하면 메시지를 받고 싶습니다 동안 다음

우리는 서버의 응답을 받았고 이제는 HTML을 가져와야합니다get () 메소드로 전달 된 URL의 페이지 코드 검색을 효율적으로 수행 할 시간 HTML 코드를 파이썬 객체 트리

그리고 그것을하기 위해 우리는 Beautiful Soup 라이브러리를 사용할 것이고, 그래서 나는 BeautifulSoup 클래스를 가져와야합니다 ELSE 블록 안에 새로운 변수 '수프'가 생깁니다 '수프'는 BeautifulSoup 클래스

BeautifulSoup 클래스의 생성자는 적어도 두 개의 인수 – 첫 번째 인수는 페이지의 HTML 코드입니다 '응답'및 text 속성 두 번째 인자는 파서이다 HTML 코드를 파싱합니다 가장 효율적인 파서는 다음과 같습니다

LXML 파서 아름다운 스프 후드에서 사용하지만 두 번째 인수로 지정해야합니다 마지막으로 get_page () 함수는 BeautifulSoup 인스턴스, 즉 '스프'변수입니다 다음 단계는 다음과 같습니다 필요한 데이터를 긁어서 그래서 새로운 함수를 생성하고 있습니다 – get_detail_data ()

예를 들어 그것은 '수프'객체를 인수로 취합니다 이제는 분석 페이지 나는 제목, 가격 및 품목을 판매 할 것이다

시작하자 제목과 함께 그리고 내 목적은 현재이 요소들을 현재 페이지 제목이 필요합니다

마우스 오른쪽 버튼으로 클릭하고 '검사'또는 '요소를 점검하다' Inspector가 열리고 이제 볼 수 있음을 알 수 있습니다 제목은 'itemTitle'id (CSS)가있는 H1 HTML 태그입니다 그래서 나는하려고 애쓴다 이 특정 CSS 속성으로 H1 태그를 찾습니다

나는 그 '이드'를 의미합니다 그리고 여기 'soup'객체와 동일한 'h1'변수를 만듭니다 우리가 논증 한 것 그리고 이제는 find_all () 메서드를 사용해야합니다

그래서 나는 find_all () 메소드에 태그 이름 – h1, 쉼표와 그 식별 속성을 전달하면, 그것은 'id'속성입니다 우리는 할 수있다 그냥 복사하여 여기에 붙여 넣고 인쇄 해보 미안 해요 get_detailed_data () 함수를 호출하는 것을 잊었습니다 main () 함수는 여기에 있습니다 get_detail_data () 함수를 호출하고 인수로 나는 그것을 인수로 'url'변수와 함께 get_page () 함수 호출에 전달합니다

저장하고 실행하면 페이지에 H1 태그가 하나만 있음을 알 수 있습니다 따라서 여기에서 find_all () 메서드가 아닌 find () 메서드 만 사용할 수 있습니다find () 메소드의 문제점은 무엇입니까?

find () 메서드는 첫 번째 때때로 우리는 예기치 않은 결과를 얻을 수 있습니다 그래서 나는 단지 페이지에 둘 이상의 H1 태그가 포함되어 있는지 확인하십시오하지만 어쨌든 우리는 항상 코드를 수정하십시오 다시 인쇄 해 봅시다 이제 제목을 볼 수 있습니다

영어로 된 제품의 'a'태그의 'data-mtdes'속성 안에있는 경우, 그러나 H1 꼬리표의 원본이 아니다 그래서 검색 요청을 수정해야합니다 여기에 있습니다 다음 find () 메서드를 호출합니다

그리고 저는 여러분의 관심에 초점을 맞추고 싶습니다 expression은 BeautifulSoup 객체를 반환하므로 BeautifulSoup의 객체를 사용할 수 있습니다 방법 및 속성을 추가합니다 그리고 다음 find () 메소드를 호출합니다

그래서 여기 나는 'a'태그를 찾고 다시 저장하고 실행 해 봅시다 우리는 'a'태그를 얻었고 'data-mtdes'속성이 필요하다는 것을 알 수 있습니다 표제 그래서 'data-mtdes'속성의 값을 가져와야하지만 그렇게하는 방법은 무엇입니까? 이 표현식은 'a'태그를 반환합니다 BeautifulSoup입니다

개체도 그리고 'data-mtdes'의 가치를 얻으려면 attribute 사전에 get () 메소드를 호출하고 그 이름에 속성, 나는 'data-mtdes'입니다 저장하고 다시 실행하십시오 그리고 이제 우리는 영어로 제품의 제목 그러나 때때로 웹 사이트는 다른 얼핏보기에 같은 물건에 대한 레이아웃 예를 들어 제품에 할인 후 레이아웃 – 제목이나 가격 또는 다른 것이 가질 수있는 다른 것 CSS 클래스 및 다른 ID 그리고 아름다운 스프가 대상을 찾을 수 없습니다 우리의 검색 쿼리와 함께 예를 들어 다른 레이아웃을 가정 해 봅시다 제품이 다르다 여기에 뭔가를 추가하고 스크립트를 실행한다고 가정 해 보겠습니다

예외가 생겨 스크립트가 종료되었습니다 – 유형 없음 오류 그리고 처리 할 그런 예외들 파이썬은 TRY – EXCEPT 블럭들을 제공한다 그래서이 표현식을 TRY – EXCEPT 블록으로 감싸려고합니다 우리의 get_detail_data () 함수는이 검색어로 필요한 데이터를 찾으려고 노력할 것입니다

실패하면 'h1'을 빈 문자열로 사용하고 싶습니다 'title'으로 이름을 변경합시다 더 멀리 가자 이제 가격이 필요해 그래서 저는 새로운 TRY – EXCEPT 블록을 시작하고 있습니다 나의 행동을 되풀이한다

내가 생각하는 가격은 여기에있다 그래서 오른쪽 클릭 – 'Inspect' 그러면 우리는 할 수있다 가격이 'prcIsum'CSS id가있는 'span'태그인지 확인하십시오 그래서 그것을 발견하자

나는 그것의 'id'와 여기를 복사하고있다 'price'변수는 'soupfind ()'와 같다

나는 ID가 'prcIsum'과 동일한 'span'태그를 찾고 '가격'은 빈 문자열 그리고 '가격'을 인쇄하고 싶습니다 'span'태그가 있습니다

그리고 이제 우리는 가격이 'span'태그의 텍스트임을 알 수 있습니다 그래서 내가 가지고있는 텍스트를 얻으려면 수프 개체의 text 속성을 사용합니다

다시 부르 자 우린 그 끈을 잡았어 그리고 때로는 문자열에 공백이 있습니다 문자열 및 끝에, 그래서 strip () 메서드를 사용하여 공백을 제거하려면 이 일의 끝과 끝

또한 문자열을 공간 여기에 공간이 있고 문자열의 메서드로 할 수 있습니다 split () 그리고 공간을 구분 기호로 지정합니다 이제 나는 두 사람의 목록을 얻었다 요소 목록의 첫 번째 요소는 통화이고 두 번째 요소는 목록은 금액입니다

그래서 나는 그것을 풀고 싶다 말하자면 그것은 'p'가 될 것이다 변수 및 여기에 새 '통화'변수와 '가격'변수를 만듭니다 'p'객체와 같습니다 이 표현식은

에 의해 분할 된 문자열을 반환합니다 여기에 '통화'도 지정하고 싶습니다 이는 비어있는 것과 같습니다

끈 다시 한번 실행 해 봅시다 우리는 가격과 통화를 볼 수 있습니다

큰 확인 다음에는 판매 된 총 상품을 긁어서 다시 확인하겠습니다 나는 여기에 다른 레이아웃이 있다고 생각한다 'span' 그래서 우리는 판매 된 총 상품이 'a'태그의 텍스트라는 것을 알 수 있습니다 이 하나 'a'태그는 'soldwithfeedback'CSS 클래스가있는 'span'컨테이너의 하위 항목이며 여기에서 그러한 'span'은 없다

그래서 클래스 또는 ID를 지정해야합니다 필요한 결과를 찾기위한 다른 식별 속성 그래서이 클래스들은 다릅니다

하지만이 수업은 – 'vi-qtyS-hot-red'가 같기 때문에 우리는 이 클래스를 사용하여 'span'을 찾은 다음 'a'태그를 찾고 'a'태그의 텍스트를 가져옵니다 꼬리표 자 그럼 해보 죠 파이썬에서 '클래스'는 예약어이므로 여기서는 밑줄 기호를 사용해야합니다 그것을 밖으로 내다 다시 실행하자 우리는 우리의 '스팬'태그를 볼 수 있습니다

다음으로 'a'태그를 찾아야합니다 나는 find () 메소드의 호출을 추가하고 'a'를 인수로 전달합니다 그리고 우리는 소금 항목의 수량 이 단어는 '판매 된'을 의미합니다

ebaycom 모든 텍스트를 귀하의 언어 및 언어로 자동 번역합니다 귀하의 IP 주소에 따라 결정되므로 '판매 된'단어가 없지만 실제로는 그렇지 않습니다

문제 다음으로이 문자열을 공백으로 나누어야합니다 다시 나는 첫 번째 요소 만 원한다 그래서 나는 인덱스 0 및 다시 판매 된 상품의 총 수량을가집니다 큰! 그리고 지금 나는 모든 긁힌 데이터를 사전에 압축하려고합니다

나는 새로운 변수를 만들고있다 'title'키가있는 사전과 같은 데이터 이 'title'값 key는 'title'변수가됩니다

등등 그리고 우리 함수는 'data'사전을 반환 할 것입니다 다음 단계는 내부 페이지에 대한 모든 링크를 각 제품의 상세 페이지로 스크랩합니다

인덱스 페이지를 살펴 보겠습니다하지만 먼저 URL 주소 this one

그리고 우리는 URL 주소가 주요 부분과 다른 작은 부분으로 구성되어 있음을 알 수 있습니다 앰퍼샌드 기호로 구분됩니다 예를 들어 여기, 여기, 여기,이 부분 서버에 대한 get 요청의 매개 변수입니다 그리고 이것을 조작함으로써 매개 변수 우리는 필요한 출력을 얻을 수 있지만 지금 나는 URL을 간단하게하고 싶다

그래서 나는 검색 쿼리를 제외한 모든 매개 변수 삭제 – 'men 's watches' 나는 이것을 삭제하고 이것을 시도해 보자 그리고 그것은 효과가있다 – 우리는 같은 것을 얻었다

결과 큰! 이제 페이지를 페이지 매김 블록으로 스크롤하고 이것은 페이지 매김 블록이고 왼쪽에 페이지 번호 위로 마우스를 가져 가면 하단 모서리에서 URL이 한 부분 더 – 페이지 번호를 얻었음을 알 수 있습니다 'pgn = 6' 5 4 등등 따라서 다른 색인 페이지를 얻으려면 그냥 변경해야합니다 & _pgn = 2 두 번째를 볼 수 있습니다 3으로 변경하십시오 페이지 번호를 변경하여 다른 색인 페이지를 얻을 수 있습니다

나는 새 URL을 복사하여 여기에 붙여 넣으십시오 이제 나는 모든 것을 긁어 내고 싶다 현재 페이지에서만 제품의 세부 페이지로 연결됩니다 다른 페이지는 for 루프를 통해 긁어 낸다 – 단지 페이지 번호를 바꾸는 것과 마찬가지다 그리고 모든 링크를 얻으려면 새로운 함수를 만들어야합니다

get_index_data ()라고합시다 그것은 수프 객체를 인수로 취합니다 여기 – 블록을 제외하고 시도해보십시오

이제 색인 페이지로 이동하여 마우스 오른쪽 버튼으로 클릭하고 검사합니다 과 우리는 클래스 's-item__link'와 함께 'a'태그가 필요하다는 것을 알 수 있습니다 클래스를 복사하십시오 'a'태그를 사용하면 같은 클래스의 페이지에서 'a'태그를 모두 찾아야합니다

그래서 여기 '링크'변수가 수프 개체와 같습니다

이 하나 find_all () 메서드를 호출하여 클래스의 모든 'a'태그를 다 쳤습니다 난 그냥 CSS 클래스 인 's-item__link'를 붙여 넣으십시오 EXCEPT 블록에서 : links = [] find_all () 메서드는 목록을 반환합니다

그것을 인쇄 해 봅시다 그리고 나는 여기에서 get_index_data () 함수를 호출해야합니다 나는 목록을 가지고 있고 이것은 'a'태그 객체들의 목록이지만, 나는 전체 'a' 태그를 모든 속성과 함께 사용하려면 'href'속성 만 필요합니다

예를 들어,이 중 하나 그래서 나는 새로운 변수를 만들고 있습니다 그것이 'urls'와 같다고 가정 해 봅시다 빈 목록

목록을 작성하기 위해 목록 이해력을 사용하고 싶습니다 내부 페이지의 URL 주소 그것을하기 위해서는 각 get () 메소드를 사용해야한다 요소를 'links'목록의 'href'속성으로 가져옵니다 그럼 item

get ( 'href')라고 해봅시다 '링크'목록의 각 '항목'에 대한 인수로 사용됩니다 그것을 인쇄 해 봅시다 그리고 우리는 링크 (URL)를 얻었고 다음 단계는 URL 목록을 FO 루프와 각 반복마다 get_detailed_data () 함수를 호출해야합니다 각 URL -리스트의 요소 따라서 main () 함수에서 URL 목록이 필요합니다

각 제품의 주소 그래서 저는 새로운 변수를 만듭니다 get_index_data () 함수의 호출과 같은 'products'이 목록은 다음과 같습니다 링크와 지금 내가 루프를 시작 해요 그리고 여기에 내가있어 새 변수 'data'를 만든 다음 get_detail_data () 함수를 호출합니다

'url'변수와 함께 get_page () 함수를 전달하면 this this 로컬 'url' 변하기 쉬운 좋아, '링크'변수로 이름을 바꾸자 그러면 우리는 사전 스크립트를 실행 해 봅시다

오류가 발생했습니다 – "NoneType 객체가 반복 가능하지 않습니다" 문제는 여기 – 'urls'변수를 반환하는 것을 잊었습니다 다시 시작합시다

좋아요 우리는 사전을 가지고 있습니다 – 가격, 통화, 총 판매 가격 그레이트! 그리고 여기 우리는 '총 판매 된'열쇠에서이 이상한 상징을 볼 수 있습니다 그것은 깨지지 않습니다 공간 그래서 우리는 그것을 제거 할 수 있습니다

나는 replace () 메서드를 호출하고 있습니다 그것은 문자열이고, 첫번째 인자는 ' xa0' (깨지지 않는 공간) 그리고 그 대신에 내가 원하는 것은

빈 문자열 승인 다음 단계는 이 사전을 CSV 파일 그래서 나는 새로운 함수 write_csv ()를 만들고 싶다 '데이터'사전을 인수로 사용합니다 CSV를 사용하려면 그것을 가져 오십시오

write_csv () 함수 안에서 WITH 컨텍스트 관리자를 사용하여 처리하고 있습니다 파일을 만든 다음 open () 함수를 호출하고 open () 함수에 전달합니다 함수는 파일 이름을 'outputcsv'라고합시다 그리고 open () 함수 이 파일 이름으로 파일을 찾으면 열립니다 그렇지 않으면 open () 함수는 'outputcsv'파일 이름으로 새 파일을 만듭니다

그리고 나는 또한하고 싶다 두 번째 인수를 지정하십시오 – 'a'문자가됩니다 'A'는 '추가'를 의미하므로 새로운 데이터는 'outputcsv'파일 끝에 추가됩니다 그리고 이것을 위해 열렸습니다

쓰기 파일 개체 'csvfile'변수에 'as' 예어 다음 나는 CSV와 같은 새로운 변수 '작가'를 만들고있다

모듈을 호출하고 writer () 메서드를 호출하면 'csvfile'객체가 논쟁 그리고 마침내 나는 '데이터'사전의 내용을 쓰고 싶다

CSV 파일 이 하나 그래서 작가의 메서드를 호출합니다 writerow () 메서드와 writerow () 메서드는 단 하나의 인수 만 사용하므로 생성합니다 새로운 이용 가능

그것이 '행' 그것은 목록과 같습니다 그리고 여기에 나는 '데이터'의 열쇠를 열거하고있다 사전을 CSV 파일에 넣고 싶습니다

그래서 '데이터'사전에 '제목', '가격', '통화', '총 판매 된'키가 있습니다 그런 다음 'row'변수를 전달합니다 write_row () 함수에 추가합니다 또한 나는에 전달하는 것이 유용 할 것이라고 생각합니다 write_csv () 함수는 URL 주소입니다

그래서 write_csv () 호출을 추가하고 있습니다 함수 여기에

write_csv () 함수를 추가하고 첫 번째 인수로 'data'를 추가한다고 가정 해 보겠습니다 '링크'변수는 두 번째 변수입니다 그래서 여기에 두 번째 매개 변수 인 'link'또는 'url' 'url'이라고 가정 해 봅시다 그리고 여기 에서 결국 나는 'url'을 지정하고있다

그럼 스크립트를 실행 해 봅시다 우리는 'outputcsv'를 얻었고 Libre 사무실이나 Microsoft Office에서 살펴 보겠습니다 승인 우리의 데이터가 있습니다

우리는 여기에 몇몇 빈 세포를 볼 수 있습니다 그래서 우리는이 URL을 복사하여 그것을 검사 할 수 있습니다 다시 경감 님과 할인이 있고 ID가 다릅니다 좋습니다

어떻게이 문제를 해결할 수 있습니까? 우리는 할 수있다 여기에 중첩 된 try / except 블록을 만들고 여기서 우리는 'span'태그를 찾으려고 할 수 있습니다 다른 ID 여기서 '통화'정의를 이동하십시오 기본 try / except 블록과 동일한 레벨입니다

이제 스크립트를 삭제하고 스크립트를 실행 해 봅시다 다시 LibreOffice로 열어 보겠습니다 이제 우리는 우리가 빈 셀을 채웠지 만 데이터가 정규화되지 않았습니다 달러 기호지만, 어쩌면 다음에 또한 빈 제목이 있습니다 그래서 때때로 title은 다른 CSS 속성을가집니다 그러나 그것은 중요하지 않습니다

이 열을 '총 판매량'별로 정렬 해 봅시다 그것은 D 열입니다 데이터 메뉴 – 정렬 D 열, 내림차순 승인 그리고 우리는 대부분의 수요와 가장 성공적인 제품은이 시계입니다 거의 두 명이야

여기 달러, 예를 들어, 가격이 거의 $ 85 인 1000 개의 판매 상품 죄송합니다 이 URL을 복사하여 붙여 넣으십시오 $ 85 및 1000 판매 그리고 이건 22,000 달러를 팔고 1 달러 반 가격 오, 맙소사

언뜻보기에는 가장 수요가 적은 제품입니다 그리고 만약 당신은 비디오를 좋아해요 '좋아요'를 클릭하고 구독하십시오 고맙습니다

Python Web Scraping | Web Scraping using Beautiful Soup | Python Tutorial | Intellipaat

좋은 아침, 좋은 오후와 좋은 저녁 신사 숙녀 여러분 나는 Intellipaat 출신의 Atul이다

파이썬을 사용하여 웹 스크래핑에 대해이 세션 전체를 환영합니다 웹 스크래핑은 다음을 수행하는 데 사용되는 용어입니다 대형 프로그램을 추출하고 처리하기위한 프로그램이나 알고리즘의 사용법을 기술한다 웹에서 데이터의 양 데이터 과학자이든 엔지니어이든간에 많은 양의 데이터를 분석하고자하는 사람이라면 누구나 웹에서 자료를 긁어내는 것은 유용한 기술입니다

웹에서 데이터를 찾고 직접 다운로드 할 수있는 방법이 없다고 가정 해 보겠습니다 파이썬을 이용한 웹 스크래핑은 여러분이 데이터를 유용한 형식으로 변환하여 추가 분석을 위해 가져올 수 있습니다 글쎄 이것은 웹 스크 레이 핑에 대한 간단한 개요 였으므로 웹에 깊이 들어가기 전에 근근이 살아 가면서 오늘의 세션에 대한 의제에 관해서 논의 해 보겠습니다 우리는 웹 스크래핑에 대한 기본적인 소개와 함께 세션 웹 크롤링과 다른 점은 무엇입니까? 웹 스크래핑의 다양한 응용 프로그램 우리 세션에서 우리는 또한 토론 할 것입니다

웹 스크 레이 핑이 합법적인지 여부를 알기위한 웹 스크리핑의 합법성에 관한 정보 해야 할 일 이 작업을 완료하면 데모 부분으로 이동하여 파이썬 라이브러리를 사용하여 웹에서 데이터를 긁을 수있는 방법을 보여줍니다 요청과 아름다운 수프 이 튜토리얼 세션에서는 HTML 태그에 대한 기본 지식이 있어야합니다 그렇지 않다면 걱정하지 마십시오

이 세션 동안 기본 HTML 태그 의제가 너희들에게 분명 바란다 더 이상 알려주지 않고 웹 스크래핑 기본 사항으로 빠르게 뛰어들 수 있습니다 그래서 무엇이 웹 긁기입니다 웹 스크래핑 (scraping)은 웹 데이터 스크래핑이라고도합니다 추출, 웹 수확 등은 기본적으로 웹 사이트에서 많은 양의 데이터를 추출하십시오

이 데이터는 주로 구조화되지 않은 자연에서 한 번 추출하면 구조화 된 데이터를 컴퓨터의 로컬 파일이나 데이터베이스에 저장 표 형식 또는 스프레드 시트 형식으로 제공됩니다 대부분의 웹 사이트에서 표시되는 데이터 웹 브라우저를 통해서만 볼 수 있으며 대부분의 경우 웹 브라우저를 제공하지 않습니다 개인 용도로이 데이터의 복사본을 저장하는 기능 오직 옵션 매우 지루한 작업 인 데이터를 수동으로 복사하여 붙여 넣는 것입니다 완료하는 데 몇 시간 또는 며칠이 걸릴 수 있습니다 이제 웹 스크래핑을 사용하여 이 과정을 자동화하십시오

따라서 수동으로 데이터를 복사하는 대신 웹 사이트, 지금은 웹 스크랩 알고리즘은 분수 내에서 동일한 작업을 수행합니다 웹 스크래핑이 무엇인지에 대한 시간이었습니다 계속 나아 갑시다 이제 우리는 웹 스크래핑이나 웹 크롤링 같은 문제가 있습니까? 웹 스크래핑과 웹 크롤링 간에는 아주 미묘한 차이가 있습니다 또한 웹 스크래핑과 웹 크롤링은 서로 관련되어 있습니다 웹 스크래핑과 웹 크롤링이라는 단어가 비슷하게 보일 수 있으며 많은 사람들이 사용합니다

이 단어는 매우 빈번하지만 둘 다 서로 다른 점이 많습니다 간단한 용어 웹 크롤링은 반복적으로 검색하고 가져 오는 프로세스입니다 시작 URL 목록에서 시작하는 하이퍼 링크 일반적으로 웹 크롤링은 정보를 찾는 프로세스입니다 전세계 웹, 문서의 모든 단어 색인 생성, 데이터베이스에 추가 모든 하이퍼 링크와 색인을 따라 가면서 그 정보를 추가하기 만하면됩니다 데이터베이스에

Yahoo, Google, Bing 등의 주요 검색 엔진은 모두 웹 스파이더 또는 봇이라고도하는 프로그램이지만 다른 핸드 웹 스크래핑은 웹 문서를 자동으로 요청하는 프로세스입니다 정보를 수집합니다 엄밀히 말하면 웹 스크래핑을하면 웹 사이트를 돌아 다니기 위해 어느 정도 웹을 크롤링하십시오 웹 크롤링 일반적으로 모든 종류의 정보를 검색하는 주요 검색 엔진 웹 스크래핑은 본질적으로 특정 웹 사이트에서 특정 데이터를 대상으로합니다 예를 들어 주식 시장 데이터, 비즈니스 리드 또는 공급 제품 스크래핑 그런 것

그러나 알아야 할 중요한 점은 웹 스크래퍼가 할 수있는 것입니다 웹 크롤러가하지 않을 일들, 예를 들어 robotstxt를 따르지 않는 것 이 세션의 후반부에 정확히 무엇을 말할 것입니다 하지만 지금은 그들이 robotstxt에 복종하지 않는다는 것을 이해하십시오

네가 할 수있는 것과 네가 할 수없는 것 그래서 웹 스크레이퍼는 그것을 따르지 않습니다 robotstxt 파일 나중에 걱정하지 마라

우리는 그것에 대해 읽을 것이다 상세히 다음은 데이터가있는 양식을 제출하거나 JavaScript를 실행하거나 변환하는 것입니다 데이터를 필요한 형식 및 형식으로 변환하거나 추출 된 데이터를 데이터베이스이므로 웹 스크래퍼는 할 수 있지만 웹 크롤러는 할 수 없습니다 나는 당신들이 그 차이점을 분명히 이해하기를 바랍니다

그래서 앞으로 나아가는 웹 스크래핑의 사용 사례에 대해 배우게됩니다 어떤 비즈니스 시나리오에서 웹 스크래핑을 사용할 수 있습니까? 우리가 가지고있는 최고의 번호로 경쟁 가격을 추적합니다 잘 웹 스크래핑은 제품을 추출하거나 경쟁사의 서비스 가격을 유지하는 데 도움이됩니다 치열한 경쟁에 앞서 다음은 정서 분석입니다

잘 감정 분석은 고객 또는 고객의 반응 또는 반응을 분석합니다 소비자 웹 스크래핑을 사용하여 평가를 추출하여 쉽게 추적 할 수 있습니다 리뷰 및 전자 상거래 웹 사이트뿐만 아니라 포럼에 대한 피드백 다음으로 우리는 시장 조사

제품 또는 서비스 출시를 계획하고 있다면 웹 스크래핑을 사용하여 시장을 미리 학습하고 도움을 줄 수 있습니다 제품 캠페인 출시를위한 다음은 업계의 정밀 조사 귀하와 귀하의 비즈니스가 요구할 대부분의 시간 이 경우 모든 시장 참가자의 관점에서 누구가 존재 하는지를 알기 위해 다시 웹 긁기는 확실하게 큰 시간을 도울 수 있습니다 다음은 콘텐츠 집계입니다 그렇다면 여러 문서 또는 웹 서버에서 정보를 수집하려는 경우 추가로 처리 한 다음 수행 할 수있는 작업으로 웹에서 데이터를 스크래핑 할 수 있습니다

그런 다음 구조화되지 않은 데이터를 처리하여 조직화 된 구조화 된 데이터이며 실시간 정보로 더 사용될 수 있습니다 다음은 브랜드 가치를 모니터링하는 것입니다 미래의 의사 결정을 쉽고 빠르게 할 수 있습니다 귀하와 관련된 스크래핑 필터 데이터의 브랜드 가치를 분석하여 브랜드와 함께 긍정적이고 부정적인 키워드를 다음으로 우리는 리드 생성 스크랩 데이터를 사용하여 타겟팅 대상을 식별 할 수 있습니다

귀하의 아웃 바운드 세일 캠페인을위한 회사 가능한 한 찾을 수 있습니다 귀하의 목표 시장에서 리드 또는 각각의 오른쪽 연락처를 식별합니다 음, 이거 웹 스크래핑의 비즈니스 응용 프로그램 중 일부였습니다

당신이 연구하면 거기 당신은 웹에 대한 다른 비즈니스 응용 프로그램의 번호를 찾을 수 있습니다 긁어 모으기 이제부터는 다른 웹 사이트에서 데이터를 가져 오는 중입니다 이제는 웹 스크래핑과 관련된 다양한 비즈니스 사용 사례를 보았습니다 웹 스크래핑에서 수행하는 작업은 데이터를 가져 오는 것입니다 다른 웹 사이트 그래서 질문이 귀하의 마음에 발생할 수 있습니다처럼 웹 긁히거나 웹 법적으로 할 일을 포복합니다

그럼 대답은 아마도 크롤링이란 가져 오기를 의미합니다 웹 페이지의 내용을 자동화 된 방식으로 브라우저의 각 페이지를 수동으로 여는 것이 아니라 브라우저 에이전트가 웹 페이지를 호스팅하는 대상 서버로 호출합니다 봇이 내용을 포착 할 때 페이지를 향하는 방식과 매우 비슷합니다 그래서 지금 왜 단지 배운 사람들 사이에서 금기를 짓는가하는 의문이 생깁니다 그것을 사용 하는가? 대부분의 경우에 자주 사용되기 때문에 웹 사이트 정책 및 크롤링의 기본 규칙을 어기는

여기 엄지 손가락이 있습니다 로봇이 인도적으로 행동하기를 원하면 따라야하는 규칙 첫번째 하나는 로봇 dot txt입니다 상업용 또는 비상업적 인 용도로 사용하십시오 인도계 미국인 또는 웹 사이트 중 가장 쉬운 방법을 찾아보십시오

웹 사이트에서 스크래핑을 허용하고 단순히 스크래핑을 확인하지 않아도됩니다 로봇 점 txt 파일 슬래시 슬래시를 추가하여 작업을 수행 할 수 있습니다 스크랩하려는 웹 사이트 URL의 끝에 예를 들어 내가 원한다면 amazoncom의 로봇 도트 txt 파일을 확인하여 방금 W 도트를 재생하려고했습니다

아마존은 슬래시 로봇이 텍사스에 점을 찍는 것을 볼 수 있습니다 크롤링 할 수있는 허용되거나 허용되지 않는 링크는 다음과 같이 간주 할 수 있습니다 해당 사이트를 크롤링하려는 경우 준수해야하는 필터 동의 양식 할 수있는 URL과 크롤링 할 수없는 것이 실제로 무엇인지 알려줍니다 심지어 특정 Google 사이트는 사이트가 걱정하지 않는 한 차단 페이지를 크롤링 할 수 없습니다 페이지에 대해 SEO 다음은 공개 콘텐츠가 공개 콘텐츠 만 크롤링합니다 사이트를 크롤링하는 경우 저작권 정책을 염두에 두어야합니다

너의 것의 새로운 위치에 동일 내용을 그 후에 재현하십시오 그때 너와 가진 행운을 빕니다 쉽게 합법적 인 일이며 아무도 당신이나 당신을 반대하지 않았습니다 그 다음에 당신을 고소합니다 이용 약관 웹 사이트 이용 약관을 확인하고 확실히 그들 사이에 모두 잘 당신과 당신은 확실히 약관을 읽고해야합니다 크리에이티브하에있는 데이터의 경우 스크래핑하려는 웹 사이트의 상태 Commons 당신은 확실히 웹 사이트의 이용 약관을 읽어야합니다 긁어서 데이터가 크리에이티브 커먼즈에 속하는지 확인하십시오 용어를 사용하면 기본적으로 상업적으로 사용하십시오 조건은 긁기가 불법이라고 말하면 긁어서는 안됩니다

웹 사이트 다음 인증 기반 웹 사이트 잘 일부 사이트가 필요합니다 자신의 콘텐츠에 액세스하기 전에 인증을해야하며 대부분 진짜 인간이 기록 되기만을 원하기 때문에 크롤링을 막으십시오 다음은 크롤링 일일 보고서 도트 txt도 사이에 유지하기 위해 지연 목록 연속으로 크롤링하여 서버를 너무 세게 치지 않도록합니다 요청에 따라로드하십시오 아이피스가 차단 될 가능성이 있습니다 2017 년 8 월 Linden의 길이와 대결 사이의 진행중인 사례에 대해 이야기 해주세요

hiq이 공용 LinkedIn에서 사용 가능한 데이터에 액세스하는 것을 차단합니다 등록 된 사용자가이 hiq 친구들이하고 있었던 일들을 LinkedIn의 정보 모든 공개 정보 모든 공개 프로필 그것은 hiq에 의해 추출되고있다 그래서 LinkedIn은 그것을 회사를 차단했다 상태 hiq에 액세스하여 코드에 혼합하면 계속 진행됩니다 이 사건은 누가 데이터를 소유하고 있는가에 대한 질문에 그 정보가 거주하고있는 것으로 볼 수있는 상황 모든 사람과 공개적으로 접근 할 수있는 항소 법원 판사는 그 규칙을 린든은 컴파일되지 않은 데이터에 대한 독점권을 가지고 있습니다

반대의 설립자의 enterpreneur 재능없이 심사 위원 LinkedIn 사용자가 자신의 프로필을 공개 위치에 설정했기 때문에 그들이 제공하는 검색 엔진 및 일반 웹 서퍼의 전체보기 회사는 선원으로 데이터를보고 사용하기 위해 hiq free 고삐를 좋아합니다 양측 모두 강력한 주장을하는 칼날 결정 너와 나 같은 사람들이 어떻게 서로 영향을 미치는지에 대해 깊은 함의를 가질 수있다 당신의 일상 생활에있어서의 데이터 그래서 이것은 HIQ가 어떻게 정책에 대해 브리핑하는지에 대한 이야기였습니다 랭던 (Langdon)은이 튜토리얼에서 알 수 있듯이 웹에서 데이터를 긁어서 파이썬을 사용하여 근근이 살아야 할 것입니다

그래서 기본 파이썬 라이브러리는 무엇입니까? 웹 스크 레이 핑에 잘 사용됩니다 첫 번째 요청은 사용 된 요청입니다 URL을 가져 와서 기본 URL을 도와주는 함수와 클래스를 정의합니다 소화 인증 리디렉션 쿠키 등의 동작은 다음과 같습니다 아름다운 수프 잘 그것은에서 정보를 끌어 오기위한 놀라운 도구입니다 웹 페이지에서 단락 목록을 추출하고 단락을 추가 할 수 있습니다

웹 페이지에서 정보를 추출하는 필터 beautifulsoup가 우리를 위해 웹 페이지를 가져 오지 않기 때문에 Python이 가지고있는 아름다운 수프 라이브러리뿐만 아니라 두 요청의 조합 아름다운 스프와 같은 HTML 스크랩을위한 몇 가지 다른 옵션 긁힌 자국 치료 등을 기계화하십시오 이 자습서의 다음 자습서에서는 아름다운 수프와 요청을 잘 진행해보십시오 왜 웹에서 따라서 HTML 태그를 처리해야하므로 매우 중요합니다 좋은 HTML 기본을 이미 알고 있다면 잘 이해할 수 있습니다 그러나 그들을 위해 나는 단지 당신들을위한 기본을 두 가지로 다루려고 노력할 것입니다

분 기본 HTML 코드는 첫 번째 줄입니다 느낌표 doctype HTML이 특정 HTML 파일 html5로 작성되므로 기본적으로 모든 html5 문서는 다음으로 시작해야합니다 HTML 태그입니다 모든 HTML 문서가 시작과 끝 사이에 포함됩니다 닫는 HTML 태그는 우리가 가지고있는 다음 글입니다

웹 페이지에 보이는 것과 같은 HTML 문서의 보이는 부분 body 태그 안쪽에 언급 된 것은 body 태그입니다 웹 페이지에 보이는 것과 같은 HTML 문서의 보이는 부분 우리가 가지고있는 몸의 시간 사이에 둘러싸인 것은 H 표제가 HTML 표제 일 때이다 여섯 가지 다른 유형의 표제가있다 h1 h2 h3 h4 h5 및 h6 예 h1은 다음과 같이 정의됩니다 h2는 표제 다음에 부제목 등으로 4 단락이 온다

우리가이 태그 위에 B 태그를 가지고있는 단락은 단락을 정의하는 데 사용됩니다 끝 바디 태그와 끝나는 HTML 시간이 있습니다 테이블 시간은 메인 테이블 스타일링과 혼동하지 마라 안정된 스타일은 마치 테이블의 속성 중 하나 일뿐입니다 그 작업이 테이블이 100 퍼센트가되어야한다고 생각했다

행을 TR로 나타내고 행을 TD 태그를 사용하여 데이터로 나눕니다 예를 들어 제임스 제임스가 행의 데이터 인 것처럼 여기에 이름을 언급했습니다 우리가 같은 행 제임스에게 또 다른 데이터를 가지고있는 좋은 셀 데이터 아래 스미스는 45 세 때와 같았습니다 성 이름과 나이가 같은 행에 다시 고용되는 나이 지금 다시 내가 원한다면 다음 행에 요소를 추가하십시오 다시 또 다른 행 TR을 정의 할 것입니다

나는 성을 쓰고 나이를 쓰고 다시 닫을거야 dr 시간 또는 도로 이것들은 몇 가지 기본 사항입니다 우리가 다음에 무엇을 가지고 있는지보십시오 다음으로 우리는 환약을 가지고 있습니다 태그는 하이퍼 링크 텍스트와 함께 사용됩니다

예를 들어 일부 웹 사이트는 내 전체 시간입니다 href는 telepods com의 triple w dot과 같습니다 그래서 이것은 시간이고 내 텍스트는 무엇입니까? 이 웹 사이트에 대한 하이퍼 링크가 있어야 방문을 통해 배울 수 있습니다 시간을 닫으면이 전체가 요소로 알려져 있습니다 href 부분은 여는 태그 또는 태그 내부에 href와 같은 속성 이름이 있고 삼중 w 도트 intellibid 평온으로 속성 값 우리는 해당 콘텐츠를 방문하여 더 많은 정보를 얻으십시오

그러면 트리플 W에 대한 하이퍼 링크가 생깁니다 도트에 대한 도트 정보를 입력하고 마침내 닫는 시간에 슬래시 a를 붙입니다 이 세션에서 사용하게 될 기본 HTML 태그에 관한 내용이었습니다 HTML 태그에 대해 자세히 배우고 싶다면 온라인에서 여러개를 찾을 수 있습니다 자유롭게 사용할 수있는 소스는 HTML 및 세부 정보에 대한 정보 만 얻을 수 있습니다

콘텐츠의 웹 사이트지만이 세션에서 나는 당신 모두를 고려하고 있습니다 HTML 기본에 대한 간단한 아이디어로 우리 웹 사이트를 긁어 모으기 시작합니다 beautifulsoup를 사용하여 웹 페이지를 긁어 내고 있습니다 위키 피 디아 페이지와 우리의 최종 목표는 콘크리트로부터 콘크리트를 추출하는 것입니다 위키 피 디아를 한 단계 긁어서 파이썬 코드를 작성해 보겠습니다

노트북을 넣을 필요가없는 사람들을위한 노트북에서의 우리 칩 귀하의 컴퓨터에 설치하십시오 나는 당신이 트리플 W 점으로 갈 수 있다고 제안하고 싶습니다 아나콘다 진정 슬래시 다운로드 및 거기에서 당신은 아나콘다를 설치할 수 있습니다 네비게이터 anaconda navigator가 이미 목성 노트북을 미리 설치했습니다 그것과 당신은 단지 목성 노트북을 시작하기 위해 시작 버튼을 칠 수 있습니다 이것은 나의 아나콘다 항해자이다 나는 발사 버튼을 치게 될 것이다 그리고 나의 목성 노트가 기본 브라우저에서 시작하므로 시작하십시오

가장 먼저해야 할 일은 쿼리에 사용 된 라이브러리를 가져 오는 것입니다 웹 사이트에서 요청을 가져올 것입니다 가져 오기를 원할 때 URL을 언급해야하므로 URL이 지정됩니다 위키 백과 링크 그래서 위키 링크 동일 링크입니다 지역별 아시아 국가 별 목록과 내가하고 싶은 일이 있습니다 이 특정 열을 추출하여 여기에서 국가를 추출하고 싶습니다

모든 다른 나라의 표를 보자 여기에 내 위키 링크가있어서이 URL을 텍스트 그래서 난 그냥 내 링크 평등 퀘스트를 작성합니다 점은 텍스트 위키 링크를 얻을 오류를 실행하지 않았습니다 가져 오기 링크를 확인하려면 먼저 이동하십시오 정확하게 또는 직설적 인 두뇌 연결 및 그래서 그렇습니다 그래서 그것은 실행되고 나는 당신이 볼 수 있듯이 그것이 잘 작동하고 있다고 생각합니다 그 특정 웹 페이지에서 내 다음 작업은 반환 된 데이터를 구문 분석하는 것입니다

그 웹 사이트는 beautifulsoup를 사용할 것이므로 가져올 것입니다 vs4에서 아름다운 수프 다음 변수를 정의 할거야 같음 아름다운 동등한 내부는 내 변수 링크를 전달합니다 Alexa 그래서 내가 여기서 한 것은 링크 변수에 HTML을 전달하고 저장 한 것입니다 아름다운 su 형식이므로 지금부터 내가 할 일은 이제는 기능을 사용하겠다 su를 출력하면 출력이 무엇인지 보자

지금은별로 읽을 수 없지만 그래, 그것은 링크 변수에서 HTML을 전달합니다 그래서 내가 할 수있는 일은 미리 정의 된 함수를 사용하여 그것을 무시하도록기도하자 HTML 페이지의 중첩 된 구조를 통해이 구조체의 구조를 볼 수 있습니다 HTML 태그를 사용하면 사용 가능한 여러 태그에 대해 알 수 있습니다 당신이 이것들을 가지고 놀 수 있고 정보를 추출하는 방법 해야 할 일은 단지 인쇄 수프 도트를 작성하는 것입니다 훌륭한 실행 영광의 스타 그래서 여기에 당신이 중첩있어 좋은 HTML 페이지 구조 다음으로 우리는 HTML 태그를 사용하여 기본적으로 테스트를위한 일반적인 구문을 다룰 것입니다

스프 도트 점은 예를 들어 제목을 꺼내고 싶습니다 수프 도트 제목을 적어주세요 내 제목은 지역별 아시아 국가 목록입니다 위키 피 디아를 지금 슬래시하면 어떻게 될까요? 그게 지금 내가이 태그들을 여기에 놓기를 원하지 않는다면 나는 그 문자열을 발견했다 여기에서 나는 지역별 아시아 국가 목록을 원한다

– 위키 피 디아 그래서 내가 뭘 할거야 나는 여기에 글쓰기 제목을 쓰고, 문자열 만 필요하다 부분은 금이 간다 그래 태그가없는 문자열이 있습니다

이제 밖으로 나가서 체크 아웃하십시오 이 특정 웹 페이지의 다양한 링크입니다 그래서 내가 가져오고 싶습니다 나는 수프에 점이 찍히도록 태그를 전달하고 싶다 그래서 당신이 볼 수있는 것은 모든 링크를 추출 할 수있는 출력이 하나 밖에 없다는 것입니다 어떤 태그를 가지고 있으므로 우리는 su와 같은 모든 함수에 밑줄을 긋습니다

내면에 밑줄을 치고 그걸 모두 언급 했으니 까 타이틀 링크 및 기타 정보를 포함한 링크 이제 각 태그를 반복하고 반환해야하는 링크 만 표시하면됩니다 당신은 무엇을 할 것인가를 위해서 벌금을 부과하는 속성 href를 사용하는 링크 예를 들어 보겠습니다 B 링크가 필요하므로 정의하겠습니다 모든 링크 그래서 변수를 정의하자 모든 링크 동등한 수프 점 밑줄 찾기 이제 모든 시간을 지금 링컨에 대한 모든 밑줄 링크 그 다음에 get link dot dot 인사 EF 생각 실행되고 유효한 구문입니다

미안합니다 여기서 가져온 모든 hrf 링크입니다 지금 우리의 주요 과제에오고있어 작업은이 특정 테이블에서 이들 국가를 추출하는 것이 었습니다 좋아하는 걸 좋아해 우리가 그 나라에 관한 정보를 추출 할 수있는 테이블을 찾고있을 때 오른쪽 테이블 먼저 올바른 테이블을 찾아야합니다

모든 테이블 태그 내에 정보를 추출하는 명령을 작성해 보겠습니다 모든 밑줄 표는 수프 점을 같게합니다 이 모든 시간을 가져올 테니 테이블 태그를 사용하고 모든 밑줄 테이블을 인쇄하면 우리는 여기 다른 모든 테이블 태그를 가져라 지금 우리는 어느 것이 하나인지 식별해야합니다 오른쪽 테이블 그래서 우리는 테이블의 클래스의 속성을 사용하고 그것을 필터링에 사용합니다 올바른 테이블 이니, 어떻게이 클래스를 체크 할 것인지 기대하고 있습니다

그래서 당신이 크롬을 열면 저의 크롬이 열리게됩니다 웹 페이지 I Tendo에서 수업 명을 확인할 수 있습니다 웹 페이지의 필수 테이블을 마우스 오른쪽 버튼으로 클릭하고 inspect 요소를 선택하십시오 아래 오른쪽 마우스 클릭의 클래스 이름이 필요합니다 검사 요소 좋아, 그래, 이건 내 테이블 수업 이었어

그 클래스는 안정적이고 클래스 이름은 무엇인가 Rickey 테이블 톱 테이블 클래스 이름을 여기에 복사하여 다른 변수를 오른쪽과 수프 도트가 발견하고 모든 테이블 태그와 어떤 테이블이 특히하나요? 다시 클래스 이름을 가진 클래스 이름을가집니다 위키 테이블 sortable ricky tablespace sortable fine so 정보를 바로 추출 할 수있는 오른쪽 테이블이 있습니다 학교 테이블 아래에서 확인해 봅시다 당신은 알맞은 나라 지역 킬로미터 평방 노트임을 압니다 틀린 나라 지역 킬로미터 정사각형 노트 그렇게 이것이 정확하다

좋은 테이블 이제 모든 나라에 링크가 있음을 화면에서 볼 수 있습니다 그래서 각각의 링크가 태그를 가지고 있다는 의미는 무엇입니까? 오른쪽 테이블에 직면하고 싶습니다 올바른 타입을 얻는 것입니다 그래서 나는 테이블 링크처럼 정의한다 같이 오른쪽 테이블 도트를 모두 찾으면 내가 찾고 싶은 것은 귀여운 K 태그입니다

abel 밑줄 링크를 확인해 봅시다 그래서 우리는이 목록의 전체 목록을 가지고 있습니다 여기가 넘는 나라들 다음으로 할 수있는 일은 예를 들어 데이터 프레임으로 가져올 수 있습니다 테이블 밑줄의 링크에 대해 빈 목록을 국가로 정의하십시오 length this 내 변수를 바로 사람들이 학교 링크를 아래 나라 도트했다 링크 도트를 추가하고 각각의 링크의 제목 부분을 얻고 싶습니다

cuted가 현재 전체 목록을 인쇄합니다 프랑스 국가 미안해 틀렸어 여기에 오, 그래 링크가 바로 그래서 누가 쿠바 괜찮아요 괜찮아 그래서 우리는 전체 여기에있는 우리 나라의 목록은 이제 내가 원하는 모든 것을 데이터 프레임을 잘 보도록하자 내가해야 할 일을 데이터 프레임 가져 오기 때문에 팬더를 가져와야합니다

Honda는 다음 PD로 EF와 동일한 PD 점 데이터 프레임으로 데이터 프레임을 정의합니다 괜찮 으면 좋겠네요 그러니 나라의 권리와 같은 데이터 프레임 이죠 그래서 나라는이 나라와 잘 어울린다 그게 다예요

당신의 데이터 프레임을 귀엽게 인쇄하십시오 그래서 당신은 정의되어 있습니다 위키 백과 페이지에서 데이터를 긁는 방법이 있습니다 감사합니다이 질문은 의심의 여지가 아래에 코멘트 섹션을 통해 그것을 추가 할 주시기 바랍니다

web scraping using python for beginners

안녕하세요 다른 동영상을 환영합니다

그리고 오늘 우리는 아주 좋아하는 주제 중 하나에 대해 이야기하고 있습니다 내가 며칠 동안 휴식을 취할 때 많은 사람들이 분명히 요구했다 그래서이 모든 것이 Dinamo와 Nuke를 사용하여 제거 된 스크랩 스크랩 bla bla bla (이 남자가 말하는 것을들을 수 있습니다) 그리고 나는이 위엄하고 불가능한 도전에 대처하고 싶다 여기 요원 (shhhsh)이 얘기 할거야 Piemation을 사용하는 웹 스크립팅 (그를 구독하십시오 !!!) Applejack으로 펜 낙서 작업하기 다음 에피소드에서 애플 잭은 모두를 죽였다 !!! 나의 작은 조랑말은 sooooo 신 damm MLG 당신은 알고있다 그게 다야 !! 이 부제를 닫으면 youtube의 Letupita 725 HD에서 내 작은 조랑말을 보게됩니다 !!!!!!!!

Web Scraping using Python

다시 친구를 환영합니다 이 블로그는 나의 마지막 블로그의 계속에있다

YouTube 채널 embedkari에 가입하십시오 이 주제 및 기타 중요한 주제와 관련된 자세한 비디오에 액세스하십시오 나는 방금 스캔했습니다 파이썬 제어 및 루프 명령 나는 일 의논을했다

Jupyter 노트북과 Python 코어 라이브러리를 사용 키 테이크 아웃, 나 이미 다른 경우에 대해 논의했습니다 복합 문 프로그램 흐름 제어에 사용 오늘 나는 또 다른 것에 대해 토론 할 것이다 다음과 같은 복합 문 그 외에도 입력 파일 작업, 문자열 조작 및 웹 스크래핑에 대해 설명하겠습니다

Beautifulsoup 패키지 Jupyter에서 데모가 이어집니다 수첩 키보드 C 함수에서 입력 scanf는 사용 된 함수 중 하나입니다 표준 입력으로부터 입력 받기 우리는 입력 함수를 사용하는 파이썬 그리고이 프롬프트는 선택 사항입니다 프롬프트가없이 출력되도록 표시됩니다 후행 줄 바꿈 문자열 조작 다음은 C 라이브러리의 일부를 비교 한 것입니다

해당 파이썬 함수를 사용한 문자열 조작 함수 C에서 문자열 길이 계산 파이썬의 strlen 함수 len 함수 C에서 알 수 있습니다 반환 형식 및 이러한 형식 형식이 있지만 여기에 우리가 말할 필요가 없습니다 C strcpy 함수에서 문자열을 다른 문자열로 복사 파이썬 s1은 s2와 같습니다 두 문자열의 연결 결합 C strcat 파이썬 s3 = s1 + s2 파이썬에서 두 문자열 strcmp와 max s1, s2의 비교 문자열을 소문자로 변환 C strlwr 파이썬 s1lower () 여기서 s1은 문자열입니다

대문자로 변환 된 문자열 strupr Python s1 dot upper 파일 작업 우리는 fopen을 사용합니다 fclose 함수의 파이썬 우리는 open과 file을 사용할 수있다 close 함수 우리는 다음과 같이 사용할 수 있습니다 그래서 파이썬은이 문장을 사용하여 a로 정의 된 실행 유형 컨텍스트의 개념을 지원합니다 컨텍스트 관리자 이것은 다음을 허용하는 한 쌍의 메소드를 사용하여 구현됩니다

사용자 정의 클래스는 런타임 컨텍스트를 정의합니다 명령문 본문이 실행되기 전에 입력되는 성명서와 그게 무슨 뜻입니까? exit가 필요한 정리를 수행하는 동안 항목이 초기화를 수행합니다 그래서 성명을 발표하기 전에 전에 성명서 시작 시작은 컨텍스트 관리자의 기능에 의해 수행됩니다 이것은 안정을 달성해야한다 이 상태를 예외 안전이라고 부릅니다 다른 많은 oops 언어들도 지원합니다

데모에서 확인해 보겠습니다에 대한 자동 파일 닫기 그게 무슨 뜻입니까? 그때 명령문이 자동으로 실행되면 파일이 닫히고 명령문이 호출됩니다

Exit는 필요한 정리를 수행하여 닫을 필요가 없습니다 그래서 이 기능은 예외가 발생하거나 아무것도 일어나지 않으면 해당 시간이 닫히고 다른 옵션이 사용 가능합니다 문맥 매니저 어떤 종류의? 이 예외 저장 수준은 파일 손상을 피할 수 있습니다 설명 할 수없는 사례 그 아나콘다 구름에서 그 파이썬 라이브러리는 기본적으로 많은 파이썬 기반 사용 가능한 라이브러리 아나콘다 구름 웹 스크 레이 핑을 해보 죠 파이썬 라이브러리 그래서 하나의 라이브러리 요청 라이브러리가 파이썬을 사용하여 HTTP 요청을 할 수있게합니다

우리는 이것을 또한 볼 것입니다 이미 설치되었는지 확인할 수 있습니다 이 아나콘다의 일부 여야합니다 하지만 여전히이 콘도 검색을 사용할 수 있습니다 사용할 수 있고 유사하게 아름다운 수프 아름다운 수프는에서 데이터를 추출하는 파이썬 라이브러리입니다 HTML XML 및 다른 마크 업 언어 다시 말하지만, 아나콘다 설치 패키지가 없으면 설치를 확인합니다

그런데 anakonda 설치에서이 방법으로 아름다운 수프를 검색하면 condak가 이것을 발견 할 것입니다 내 경우에는이 출력이 표시됩니다 실제 실험으로 가자 그래서 여기에 나는 모든 것을 썼다 먼저 파이썬에서 명령을 입력하기 때문에 이전 버전 원시 _ 입력 원시 입력 및 입력 기능 정수와 다른 모든 것들은 이제 하나의 공통 입력 만합니다

자, 어떻게 작동하는지 보겠습니다 그래서 문자열을 입력하면 간단히 ABCD를 넣을 수 있습니다 그 후에 엔터를 눌러야합니다 그렇지 않으면이 문제가 발생할 수 있습니다 그래서 그것을 시도하자

다시 실행하면 그 후에 입력하지 않으면 이 선 문제가 생길 수 있습니다 나는 좋아 출력이 없다는 것을 알기 때문에 우리가해야 할 일은이 커널을 시도해 보자 출력이 없더라도 먼저 출력을 지우십시오 거기 가서 뛰자

이리 그리고 적절한지를 확인하기 위해 커널 재설정이 완료되었거나 abcd를 입력하지 않고 지금 실행하면됩니다 좋아요, 그 다음에 문자열을 말하고 있습니다 인쇄 할 데이터를 입력하십시오 다른 데이터 유형이 필요한 경우 예를 들어 integer를 입력으로 변환 그래서 지금 당장 다시 한 번 정수 입력을 입력하면 내가 입력하면된다 그런 다음 인쇄를 실행하십시오

여기에 또 다른 예가 있습니다 플로트 그 번호를 넣을 수 있습니다 들어가라 출력 결과를 보여줍니다 float 형식으로 인쇄 12

5 이상으로 내려갑니다 문자열 조작 우리는 하나의 문자열이 할당 됨 B는 다른 문자열을 할당 받고 그것의 길이가 계산됩니다 그런 다음 최대 첫 번째 비 일치를 기준으로 두 문자열을 비교합니다 캐릭터는 여기에서 볼 수 있습니다 그래서 어느 쪽이 더 큰지는 다음과 같습니다

그래서이 경우 M은 더 큽니다 그 이유는 그것도 ASCII 캐릭터가 더 커질 것입니다 그래서 그것이 B보다 큰 이유입니다 참된 거짓 B와 같음 유사하게 다른 동작 연결하다 이 두 가지 연결은 매우 간단하다 플러스 B 인쇄 B 플러스 인쇄 시퀀스와 곱셈 반복을 매우 볼 수 있습니다

단순한 사례 변경 완료 하단과 하단 그때 너는 볼 수있어 문자를 찾기 때문에 문자의 위치가 표시됩니다 그래서 당신에게서 시작하는 것은 같이 볼 수 있습니다 0 1 나는 그걸 바탕으로 우리가 사용한 문자열은 무엇이든간에 여기에서 실제로 0 1 2이므로 공백도 있습니다 D도 6 위 그걸로 과 이리 문자열의 일부를 벗기기 그래서 우리는 이것을 완성 할 수 있도록 작성해야합니다

그래서 만약 스트립 매개 변수가 일치하지 않으면 스트립되지 않으므로 여기에서 볼 수 있습니다 동일한 것입니다 매개 변수가 전달되지 않으면 공백을 제거합니다 이 특별한 경우에 나는 스트립과 그 선도적 인 그래서이 특별한 경우에 뒷부분 너는 볼 수있다 따라서 현재 디렉토리의 파일을 열 수있는 경우 이것은 파일 열기 작업입니다 우리는 그것을 볼 것입니다

그래서 당신은 단순히 특정 파일을 열 수 있고 현재 디렉토리에서이 파일을 가지고 있습니다 내가 논의한 것처럼 간단한 명령으로 그런 다음 해당 파일의 도트 읽기를 사용하여 읽을 수 있고 데이터를 인쇄 할 수 있습니다 그것을 실행하면 특정 파일의 데이터와 그 후 이제 그 파일을 보게됩니다 이리 이것은 세금을 부과하고 그 후에, 당신은 볼 것입니다 열려있는 모든 파일은이 open 명령을 사용했기 때문에 닫아야합니다

그래서 닫혀 야합니다 파일이 닫히면 당신이 볼 수있는 어떤 조작도 할 수 없으므로 그 오류가 발생합니다 분명히 닫힌 된 파일 작업에 대한 그 오류 제한된 컨텍스트에서 파일이 필요한 경우이 특정 파일이 이러한 경우에만 필요한 경우 두 가지 명령 이 파일과 같이 파일로 사용할 수 있습니다 파일이 닫혀 있는지 확인하려면 문맥을 떠나는 시간은 예외와 유사합니다 대부분의 oops 언어의 안전 기능 처럼 리소스 인 RAII 초기화에서 획득 이것은 완전한 형태 나 더 나은 것은 생성자가이 컨텍스트를 종료 할 때마다 생성자와 소멸자 또는 릴리스를 가져옵니다

소멸자가이 특정 파일이나 자원을 정리하고 해제합니다 그래서 이것은 도움이되거나 다중 프로세서 다중 프로세스 응용 프로그램 및 동일한 파일을 볼 수 있습니다 이제는 이미 닫았습니다 우리는 닫힌 것을 사용하지 않았습니다 닫힌 파일을 닫습니다

그럼 전시회 이후로 보자 이미 닫힌 컨텍스트 파일로 종료되었습니다 따라서 데이터를 읽으면 더 이상 읽을 수 없습니다 다시 읽은 파일 파일이 이미 닫혀있어 닫힌 상태로 사용하지 않았기 때문에 오류가 다시 발생합니다 기능은 가지고 있지만 해당 컨텍스트를 떠난 후 자동으로 닫히거나 이러한 명령을 실행합니다

이게 뭐야? 좋아, 그렇게 해봐 새 라이브러리 함수는 영숫자이거나 알파는 숫자입니다 그래서 많은 기능들이 있고 HTML 요청 라이브러리를 가져와야하므로 응답을 요청하고 확인하십시오 가져 오기를 사용하여 가져 오기 URL을 전달하고 이 URL로부터 얻을 수있는이 응답은 응답의 해당 내용을 인쇄합니다 그 웹 사이트에서 볼 수 있습니다

그것을 읽고 이 내용은 특별한 좋아요 그래서 이것은 전체의 형태입니다 HTML은 입력을 사용하여 똑같은 것을 시도해 봅시다 아름다운 패키지 좋아요 HTTP URL 가져 오기 기본적으로 URL을 사용할 수있는 URL 요청입니다

필요한 모든 것을 수행하십시오 기본적으로 인증서 및 호스트 이름 검사 모두를 찾으면 태그를 할 것입니다 기본적으로 태그 란 무엇입니까? 보통 앵커 텍스트 사용자에게 제공 링크 대상의 내용에 관한 관련 정보 및 앵커는 조각이다 세 어느 하이퍼 텍스트 링크의 시작과 끝을 표시합니다 hreference

href 란 무엇입니까? 이것은 하이퍼 텍스트 참조입니다 href는 하나의 매개 변수를 URL로, 다른 하나는 클릭 가능한 텍스트로 사용합니다 그것은 하이퍼 링크입니다 당신은 그것이 어떻게 생겼는지를 볼 것입니다 차이점을 찾기위한 앵커 텍스트는 URL이며 이는 그 이름 그래서 이것이 지금 문서라면, 내가 그것을 살펴보면 어떻게 변화하는지 보게 될 것입니다

그래서 그것을 클릭 할 수있을 것입니다 이 특정 문서에서이 항목을 입력하면 몇 가지 사항이 표시됩니다 그래서 이것은 이것이 당신이 우리의 것을 볼 수있는 방법입니다 웹 사이트에서도 이 아름답고 아름다운 수프를 가져 와서 가져 오십시오 URL 여기에 요청하지 않고 입력 한 다음 입력 할 것입니다

여기 웹 사이트, 그래서 그 제공해야합니다 웹 사이트 이름 및 나는 내가 들어가다 웹 사이트 주소를 입력 한 후 OH 그것은해야한다 그래서 당신은 여기처럼 보입니다 와 이 특별한 개방적이고 이 응답은 기본적으로 이 특정 웹 사이트의 응답은 URL을 통과했기 때문에 나는 이것을 보여주고 싶었습니다 입력 이 입력 함수를 사용하면 URL을 사용하여 전달했습니다 이 웹 페이지

기본적으로 우리가 얻은 결과가 무엇이든간에이 내용을 읽을 것입니다 그때 수프 이 아름다운 수프를 바탕으로 반대 할 것이며이 웹 페이지와 파서 및 파서 (Parser)는 그 안에서 우리가 태그를 사용하여 앵커 텍스트를 우리는이 링크를 가질 수 있습니다 모든 링크를 인쇄하여 기본적으로 해당 파일 내의 모든 링크를 제공합니다 그리고 우리가 지금 할 수있는 다른 것, 우리는 당신이 이것을 시도 할 수있는 수프 객체를 가지고 있습니다 이 주석을 제거해도 나는 지금 당장 할 것이 아니라 내가 대신 할 일을 사용하겠다

이 가장 좋아하는 그것은 변환하는 데 사용할 수 있습니다 이 아름 다운 수프 구문 분석 트리 너무 잘 정돈 된 유니 코드 문자열 그래서 당신은 그것이 어떻게 생겼는지 보게 될 것입니다 적절한 형식으로 HTML 파일이 어떻게 보이는지 이것은 완전한 수프입니다 적절한 물건 읽을 수있는 형식 및 그 안에 웹 페이지의 다른 데이터와 제목을 추출해 봅시다

이것은 제목과 그 중 제목 문자열 그 제목 문자열을 가져 가라 제목에서 벗어나 헤더를 가질 수 있습니다 또한 그 머리글을 들여다 볼 수 있습니다 하나의 헤더와 우리는 또 다른 헤더를 확인할 수 있습니다 그럼 우리는 모든 정보에 h 보다 그 s2 오류로부터의 정보 우리 웹 사이트에서 이와 같은 다른 정보를 보게 될 것입니다

이 임베드 숨기기 결과로 이동하면이 모든 정보를 찾을 수 있습니다 그래서 그것은 직접적으로 웹 사이트,이 운동은 시도 할 수도 있습니다 이걸로 당신은 특정 웹 사이트는이 특정 웹 사이트는 당신에게 회사의 목록을 제공합니다 사회적 책임 Group을 선택하면 해당 데이터를 추출하려고 시도 할 수 있습니다 알았어 그래서 고마워요 다시 코딩 스타일에 대한 참조를 제공했음을 다시 알려 드리겠습니다

추가로 youtube channel embed curry를 구독하십시오 임베디드 관련 자료 및 또한 c C ++ 용 관련 임베디드뿐 아니라 데스크톱 기반 및 최상의 오픈 소스 도구와 기술을 찾으려면 체크 아웃하십시오 오픈 소스 발견 플랫폼 이 findbestopensourcecom 감사

Web Scraping using lxml and Python 2018: Extracting data from Steam

안녕하세요 여러분! 나는 네가 잘하고 있기를 바란다 저는 Yasoob입니다

여러분 대부분은 파이썬 팁 블로그에서 저를 기억하고 오늘 제가 가르 칠 것입니다 파이썬을 사용하는 웹 스크래핑의 기초 무엇보다도, 왜 웹 스크래핑 방법을 배워야합니까? 당신의 직업이 당신이 그것을 배울 필요가 없다면, 당신에게 어떤 동기 부여를 시키십시오 Amazon, Walmart에서 가장 저렴한 제품을 선별하는 웹 사이트를 만들고 싶다면 어떻게해야합니까? 및 다른 온라인 상점의 커플? 이 온라인 상점 중 많은 곳에서 정보에 쉽게 액세스 할 수있는 방법을 제공하지 않습니다 API를 사용하여

API를 보유하고 있더라도 대개 속도 제한적입니다 따라서 유연성이별로 없습니다 API가 없으면 추출 할 수있는 웹 스크레이퍼를 만드는 것이 유일한 선택입니다 이러한 웹 사이트의 정보를 자동으로 제공하고 해당 정보를 사용하기 쉬운 방법 다음은 JSON에서 일반적인 API 응답의 예입니다

이것은 Reddit의 응답입니다 웹 스크래핑으로 당신을 도울 수있는 파이썬 라이브러리가 많이 있습니다 lxml, BeautifulSoup 및 Scrapy라고하는 본격적인 프레임 워크가 있습니다 대부분의 자습서에서는 BeautifulSoup 및 Scrapy에 대해 설명하므로 lxml을 이 스크린 캐스트 XPath의 기본 사항과 데이터를 추출하는 데 XPath를 사용하는 방법을 알려 드리겠습니다

HTML 문서 나는 여러 가지 다른 예들을 통해 당신을 신속하게 얻을 수 있도록 여러분을 안내 할 것입니다 lxml 및 XPaths 당신이 게이머라면이 웹 사이트를 이미 알고있을 것입니다 Steam에서 데이터를 추출하려고합니다

보다 구체적으로, 우리는 "인기있는 새로운 릴리스"섹션에서 데이터를 추출합니다 나는 이것을 두 부분으로 된 시리즈로 바꿀 수도있다 지금은 게임의 이름을 추출 할 수있는 파이썬 스크립트를 만들 것이며, 게임의 가격, 각 게임과 관련된 다양한 태그 및 대상 플랫폼이 포함됩니다 1 단계 : 증기 탐험 우선, Steam에서 '인기있는 새 출시'페이지를 열고 아래로 스크롤하여 볼 수 있습니다 인기있는 새 출시 탭

이 시점에서 저는 주로 Chrome 개발자 도구를 열고 해당 HTML 태그에 포함 된 HTML 태그를 확인합니다 필요한 데이터 나는 엘리먼트 인스펙터 도구를 사용한다이 도구는 왼쪽 상단에있는 버튼이다 개발자 도구

이 기능을 사용하면 페이지의 특정 요소 뒤에있는 HTML 마크 업을 하나만 볼 수 있습니다 딸깍 하는 소리 하이 레벨 개요로서 웹 페이지의 모든 내용이 HTML 태그로 캡슐화되며 태그는 일반적으로 중첩됩니다 데이터를 추출하는 데 필요한 태그를 파악해야합니다 가다

우리의 경우, 우리가 살펴보면 모든 개별 목록 항목이 캡슐화되어 있음을 알 수 있습니다 앵커 태그에 앵커 태그 자체는 div에 tab_newreleases_content라는 ID로 캡슐화됩니다 나는이 페이지에 두 개의 탭이 있기 때문에 이드를 언급하고있다 두 번째 탭은 정보를 추출하지 않으려는 표준 "New Releases"탭입니다 에서 따라서 우리는 먼저 "Popular New Releases"탭을 추출한 다음 추출합니다 이 추출 된 태그에서 필요한 정보

2 단계 : Python 스크립트 작성 시작 이것은 새로운 파이썬 파일을 만들고 스크립트를 작성하기에 완벽한시기입니다 나는 scrapepy 파일을 만들 예정이다 이제 필요한 라이브러리를 가져와 봅시다 첫 번째는 요청 라이브러리이고 두 번째는 lxml

html 라이브러리입니다 요청 라이브러리는 우리가 파이썬에서 웹 페이지를 열도록 도와 줄 것입니다 HTML 페이지를 열기 위해 lxml을 사용할 수 있었지만 모든 웹 페이지에서 제대로 작동하지 않았습니다 그래서 안전한쪽에 있기 위해 요청을 사용할 것입니다 이제 요청을 사용하여 웹 페이지를 열고 그 응답을 lxml

htmlfromstring에 전달합니다 방법 이는 HtmlElement 유형의 객체를 제공합니다 이 객체에는 HTML 문서를 쿼리하는 데 사용할 수있는 xpath 메서드가 있습니다

이것은 HTML 문서에서 정보를 추출하는 구조화 된 방법을 제공합니다 3 단계 : 파이썬 인터프리터 실행 이제이 파일을 저장하고 터미널을여십시오 scrapepy 파일에서 코드를 복사하여 파이썬 인터프리터 세션에 붙여 넣으십시오 계속 편집하고 저장하지 않고도 XPath를 빠르게 테스트 할 수 있도록이 작업을 수행하고 있습니다

scrapepy 파일을 실행합니다 'Popular New Releases'가 포함 된 div를 추출하기위한 XPath를 작성해 보겠습니다 탭 우리가 따라 가면서 코드를 설명 할 것입니다

이 명령문은 HTML 페이지의 id가 모두있는 div의 목록을 반환합니다 tab_newreleases_content 이제 우리는 페이지의 div 하나만이 이드를 가졌기 때문에 첫 번째 div를 꺼낼 수 있습니다 요소를 목록에서 가져오고 필요한 div가됩니다 xpath를 분해하고 이해하려고 노력합시다

이 두 개의 슬래시는 lxml에게 HTML의 모든 태그를 검색하고자 함을 알립니다 우리의 요구 사항과 일치하는 문서 또 다른 옵션은 하나의 슬래시를 사용하는 것이 었습니다 단일 슬래시는 우리가 일치하는 직접 자식 태그 / 노드만을 반환합니다 요구 사항

div는 HTML 페이지에서 div를 검색한다는 것을 lxml에 알립니다 그리고이 특정 코드는 lxml에게 우리가 div에 관심이 있다는 것을 알려줍니다 이 ID는 tab_newreleases_content입니다 시원한! 우리는 필요한 div가 있습니다 이제 크롬으로 돌아가서 어떤 태그에 새 출시 도서의 제목이 포함되어 있는지 확인해 보겠습니다

4 단계 : 제목 및 가격 추출 제목은 tab_item_name 클래스의 div에 들어 있습니다 "Popular New Releases"탭을 추출 했으므로 추가 XPath 쿼리를 실행할 수 있습니다 그 탭에 우리가 이전에 실행했던 동일한 파이썬 콘솔에 다음 코드를 적어 라 코드 입력 이것은 "Popular New Releases"탭에있는 모든 게임의 타이틀을 제공합니다

다음은 예상되는 결과입니다 이 XPath를 약간 분해 해 봅시다 마지막 것 여기에 "" lxml에게 우리가 태그의 자식 인 태그에만 관심이 있다는 것을 알려줍니다

new_releases 태그이 특정 필터는 다음과 매우 유사합니다 ID를 기반으로 div를 필터링하는 방법 유일한 차이점은 클래스 이름을 기반으로 필터링한다는 것입니다 그리고 / text ()는 방금 추출한 태그 안에 들어있는 텍스트를 lxml에 알려줍니다 이 경우 tab_item_name 클래스 이름을 사용하여 div에 포함 된 제목을 반환합니다 이제 우리는 게임 가격을 추출해야합니다

다음 코드를 실행하면 쉽게 할 수 있습니다 이 코드는 제목 추출과 매우 유사하므로 설명 할 필요가 없다고 생각합니다 암호 우리가 만든 유일한 변화는 클래스 이름의 변경입니다 5 단계 : 태그 추출 이제 제목과 관련된 태그를 추출해야합니다

다음은 HTML 마크 업입니다 다음 코드를 파이썬 터미널에 적어서 태그를 추출하십시오 언제든지 비디오를 일시 중지하여 코드를 더 자세히 볼 수 있습니다 또한이 비디오와 함께 코드 파일을 제공하여보다 쉬운지 여부를 확인합니다 올바른 코드를 작성했는지 여부

그래서 우리가 여기서 뭘하고 있는지 우리는 게임에 대한 태그가 포함 된 div를 추출합니다 그런 다음 추출 된 태그 목록을 반복 한 다음 해당 태그에서 텍스트를 추출합니다 text_content () 메소드를 사용하여 text_content () 메소드는 HTML 태그 안에 포함 된 텍스트를 HTML 태그없이 반환합니다

우리는 또한 코드를 더 짧게 만들기 위해 목록 이해력을 사용할 수도있었습니다 나는 이런 방법으로 그것을 적어 목록 작성에 대해 알지 못하는 사람들조차도 코드를 이해하십시오 어쨌든, 당신이 이미 있기 때문에 이것을 계속해서 목록 이해력으로 바꾸자 그것을 정상적으로하는 방법을 알아라 목록의 태그도 분리하여 각 태그가 별도의 요소가되도록합니다

6 단계 : 플랫폼 추출 이제는 각 제목과 관련된 플랫폼을 추출하는 것만 남았습니다 다음은 HTML 마크 업입니다 가장 큰 차이점은 플랫폼이 특정 꼬리표 클래스 이름으로 나열됩니다 일부 타이틀에는 이와 같은 플랫폼이 하나만 있습니다

일부 타이틀에는 이와 같은 5 개의 플랫폼이 있습니다 우리가 볼 수 있듯이이 스팬에는 플랫폼 유형이 클래스 이름으로 포함되어 있습니다 이 기간의 유일한 공통점은 모두에 platform_img가 포함되어 있다는 것입니다 수업 우선, tab_item_details 클래스를 사용하여 div를 추출한 다음 추출합니다

platform_img 클래스를 포함하는 범위와 마지막으로 두 번째 클래스를 추출합니다 그 기간의 이름 다음 코드를 적어 두십시오 첫째 줄에서 우리는 tab_item_details div를 추출합니다 5 행의 XPath는 약간 다릅니다

여기에 우리는 단순히 [@ class = "platform_img"]를 갖는 대신에 이것을 가지고 있습니다 그 이유는 [@ class = "platform_img"]는 platform_img 만있는 범위를 반환하기 때문입니다 그들과 관련된 클래스 스팬에 추가 클래스가있는 경우 반환되지 않습니다 반면이 필터는 platform_img 클래스가있는 모든 범위를 필터링합니다

유일한 클래스인지 또는 더 많은 클래스가 있는지 여부는 중요하지 않습니다 그 꼬리표 6 행에서는 코드 크기를 줄이기 위해 목록 이해를 사용합니다get () 메소드를 사용하면 태그의 속성을 추출 할 수 있습니다

여기서는 스팬의 클래스 속성을 추출하는 데이 클래스를 사용합니다get () 메서드에서 문자열을 반환합니다 첫 번째 게임의 경우 반환되는 문자열은 "platform_img win", "win"은 "windows"이므로 쉼표와 공백을 기준으로 문자열을 분할 한 다음 분할 된 문자열의 마지막 부분 (실제 플랫폼 이름)을 목록에 저장하십시오 7-8 줄에서 hmd_separator가 있으면 목록에서 제거합니다

이는 hmd_separator가 플랫폼이 아니기 때문입니다 VR / AR 하드웨어와 실제 플랫폼을 분리하는 데 사용되는 수직 분리 막대입니다 7 단계 : 결론 이것은 우리가 지금까지 가지고있는 코드입니다 이제 JSON 응답을 반환하여 Flask로 쉽게 변환 할 수 있습니다 기반 API

여기에 코드가 있습니다 이 코드는 자명하다 우리는 zip 함수를 사용하여 모든 목록을 병렬로 반복합니다 그런 다음 각 게임에 대한 사전을 만들고 제목, 가격, 태그 및 플랫폼을 할당합니다 그 사전에 별도의 키로 마지막으로 사전을 출력 목록에 추가합니다

앞으로의 스크린 캐스트에서는 이것을 Flask 기반으로 변환하는 방법을 살펴볼 것입니다 API와 그것을 Heroku에 호스팅하십시오 그러나이 특정 스크린 캐스트의 마지막 단계가 될 것입니다 너희들이이 튜토리얼을 즐겼기를 바랍니다 유사한 성격의 튜토리얼을 더 읽고 싶다면, 파이썬 팁으로 가십시오 필자는 정기적으로 블로그에 파이썬 팁, 트릭 및 자습서를 작성합니다

그리고 중간 파이썬을 배우는 데 관심이 있다면 내 오픈 소스를 확인하십시오 여기 책 이 스크린 캐스트를 기반으로 한 의견이 있으시면 아래 의견에 기재하십시오 향후 스크린 캐스트를 개선하고 싶습니다 귀하의 의견은 저에게 유일한 방법입니다

개선 할 부분을 알고 있어야합니다 좋은 하루 되세요!

SQL databases for python web scraping and python pandas data analysis2

python web scraping 및 python pandas 데이터 분석을위한 SQL 데이터베이스를 다루는 비디오에 오신 것을 환영합니다 이 파이썬 SQL 데이터베이스 튜토리얼에서는 파이썬과의 SQL 통합 및 파이썬과 SQL을 연결하는 방법에 대해 설명합니다

시작하자 먼저 우리가 파이썬과 통합하고자하는 데이터베이스를보기 위해 sql에 로그인해야한다 우리는이 예제에서 SQL 데이터베이스 웹을 사용하려고합니다 우리는 ID NB 2를 인쇄하여 python과 sql의 통합을 확실히하고 싶습니다 리눅스 터미널을 종료하고 우리의 sql 파이썬 연결을 진행합시다 이것은 Python과 SQL을 연결하는 방법입니다 파이썬과 SQL을 연결할 수있는 모듈을 임포트하십시오

기본 ip nb를 입력하십시오 귀하의 SQL 사용자 이름을 입력하십시오이 경우에는 루트 사용자입니다 비밀 번호를 입력하십시오 비밀번호를 숨겨야하므로이 단계가 더 쉬울 것입니다 기본 SQL DB에 입력 여기에 기본 sql 값을 입력합니다

파이썬과 SQL 연결하기 이 비디오의 앞부분에서 보았던 것처럼 실행하려는 SQL 명령을 입력하십시오 이 예제에서 파이썬을 SQL 데이터베이스 웹 스크래핑에 연결하려고합니다 이 비디오의 앞 부분에서 보여준 sql 명령을 입력하여 id 2를 선택하십시오 ID 2에 대한 sql 값의 출력 파이썬 SQL 연결을 마친 후에는 SQL 연결을 닫아야합니다 SQL은 파이썬 SQL 연결을 통해 파이썬과 통합되지 않습니다

파이썬 웹 스크래핑과 파이썬 팬더 데이터 분석을위한 SQL 데이터베이스를 다루는 비디오를 시청 해 주셔서 감사합니다 The Academy와이 비디오가 마음에 들면 채널을 좋아하고 채널을 구독하십시오 데이터 분석 질문에 답변 해 드리겠습니다