복붙노트

[PYTHON] Javascript를 사용하여 웹 사이트 스크랩?

PYTHON

Javascript를 사용하여 웹 사이트 스크랩?

나는 대부분의 행동을하기 위해 Javascript를 많이 사용하는 웹 사이트에 정보를 긁어 모으고 정보를 제출하려고 노력하고 있습니다. 브라우저에서 Javascript를 비활성화하면 웹 사이트가 작동하지 않습니다.

나는 Google과 SO에 대한 몇 가지 해결책을 찾았으며 Javascript를 리버스 엔지니어링해야한다고 제안한 사람이 있었지만 그렇게하는 방법을 모른다.

지금까지 나는 Mechanize를 사용 해왔고 Javascript가 필요없는 웹 사이트에서 작동합니다.

urllib2 또는 비슷한 것을 사용하여 Javascript를 사용하는 웹 사이트에 액세스 할 수있는 방법이 있습니까? Javascript도 배우기를 원합니다.

해결법

  1. ==============================

    1.이 주제에 대한 작은 자습서를 작성했는데 다음이 도움이 될 수 있습니다.

    이 주제에 대한 작은 자습서를 작성했는데 다음이 도움이 될 수 있습니다.

    http://koaning.io/dynamic-scraping-with-python.html

    기본적으로 당신은 셀 니스 라이브러리가 파이어 폭스 브라우저 인 척하고, 브라우저는 HTML 문자열을 계속 전달하기 전에 모든 자바 스크립트가로드 될 때까지 기다릴 것입니다. 일단이 문자열이 있으면 beautifulsoup로 구문 분석 할 수 있습니다.

  2. ==============================

    2.지렛대를 확인하십시오. 나는 그것에 관해 어떤 경험도하지 못했지만, 나는 당신의 질문에 대한 대답에 호기심을 갖고 주변에서 인터넷 검색을 시작했다. 이게 너에게 도움이되는지 알고 싶다.

    지렛대를 확인하십시오. 나는 그것에 관해 어떤 경험도하지 못했지만, 나는 당신의 질문에 대한 대답에 호기심을 갖고 주변에서 인터넷 검색을 시작했다. 이게 너에게 도움이되는지 알고 싶다.

    http://grep.codeconsult.ch/2007/02/24/crowbar-scrape-javascript-generated-pages-via-gecko-and-rest/

  3. ==============================

    3.어쩌면 내가 믿는 파이썬 바인딩이있는 Selenium Webdriver를 사용할 수 있습니다. 나는 주로 웹 사이트를 테스트하는 도구로 사용한다고 생각하지만, 근근이 살아가는 데에도 유용 할 것입니다.

    어쩌면 내가 믿는 파이썬 바인딩이있는 Selenium Webdriver를 사용할 수 있습니다. 나는 주로 웹 사이트를 테스트하는 도구로 사용한다고 생각하지만, 근근이 살아가는 데에도 유용 할 것입니다.

  4. ==============================

    4.나는 정확히 같은 문제를 겪었다. 전혀 간단한 것은 아니지만 PyQt4.QtWebKit을 사용하여 마침내 훌륭한 솔루션을 발견했습니다.

    나는 정확히 같은 문제를 겪었다. 전혀 간단한 것은 아니지만 PyQt4.QtWebKit을 사용하여 마침내 훌륭한 솔루션을 발견했습니다.

    이 웹 페이지에 대한 설명은 http://blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/에서 찾을 수 있습니다.

    나는 그것을 테스트했으며, 현재 그것을 사용하고 있습니다.

    가장 큰 이점은 그래픽 환경없이 X 만 사용하여 서버에서 실행할 수 있다는 것입니다.

  5. ==============================

    5.나는 실제로 Selenium을 사용할 것을 제안 할 것이다. 주로 웹 사용자를 대상으로 웹 응용 프로그램을 테스트하기 위해 설계되었지만 기본적으로 "FireFox"드라이버입니다. 실제로이 기능을 사용했습니다 ... 동적 AJAX 웹 페이지를 스 캐핑하고 있었지만 Javascript 형식 Selenium이 "클릭"할 수있는 인식 가능한 "앵커 텍스트"를 가지고 있습니다.

    나는 실제로 Selenium을 사용할 것을 제안 할 것이다. 주로 웹 사용자를 대상으로 웹 응용 프로그램을 테스트하기 위해 설계되었지만 기본적으로 "FireFox"드라이버입니다. 실제로이 기능을 사용했습니다 ... 동적 AJAX 웹 페이지를 스 캐핑하고 있었지만 Javascript 형식 Selenium이 "클릭"할 수있는 인식 가능한 "앵커 텍스트"를 가지고 있습니다.

    희망은 도움이됩니다.

  6. ==============================

    6.PyQt4 + WebKit 해킹을 감싸는 Python 라이브러리 인 Ghost를 살펴보아야한다.

    PyQt4 + WebKit 해킹을 감싸는 Python 라이브러리 인 Ghost를 살펴보아야한다.

    이렇게하면 WebKit 클라이언트가됩니다.

    import ghost
    g = ghost.Ghost()
    

    g.open (url)을 사용하여 페이지를 가져올 수 있으며 g.content는 문서의 현재 상태를 평가합니다.

    Ghost에는 JS 삽입 및 일부 양식 작성 방법과 같은 멋진 기능이 있으며 결과 문서를 BeautifulSoup 등으로 전달할 수 있습니다. soup = bs4.BeautifulSoup (g.content).

    지금까지 유령 만이 파이썬에서 이런 종류의 것을 쉽게 만들 수 있다는 것을 발견했습니다. 내가 만난 유일한 한계는 클라이언트 객체 인 ghost.Ghost를 두 개 이상 쉽게 만들 수 없다는 것입니다.하지만 그 문제를 해결할 수는 있습니다.

  7. from https://stackoverflow.com/questions/3362859/scraping-websites-with-javascript-enabled by cc-by-sa and MIT license