파이썬 웹 크롤러 --Pyppeteer Pyppeteer

Pyppeteer

pyppeteer를 사용하여 기본 모듈

소개

셀레늄은 해당 드라이버를 다운로드하는 공식 웹 사이트로 이동 한 후 한 구성 환경과 관련되는 번거 로움이있을 때, 좋은 상관 관계, 등 크롬, 파이어 폭스 등의 브라우저를 설치 사용되며, 또한 가장 중요한 것은 해당를 설치해야합니다 파이썬 셀레늄 라이브러리는 정말 다음, 또 다른 대규모 배포 경우 수행 환경의 문제의 일부를 구성하는 것은 매우 쉬운 일이 아닙니다 또한 두통이다. 그런 다음이 섹션은 Pyppeteer라는 또 다른 유사한 대안을 소개합니다.

Pyppeteer 프로필

이 섹션이 Pyppeteer 호출되는 모듈이 아닌 인형을 설명합니다. 인형 구글 Node.js를 개발을 기반으로하는 도구이며, 그것은 우리가 자바 스크립트를 통해 크롬 브라우저를 제어 할 수있는 작업의 일부, 물론, 또한 웹 크롤러로 사용할 수, 자사의 API는 매우 강력하고 매우 소리입니다. Pyppeteer는 무엇인가? 실제로 실현의 인형의 파이썬 버전입니다,하지만 그는 구글이 개발되지는 인형의 일부 기능을 기반으로 개발 된 일본의 엔지니어 비공식 버전입니다.

그것은 또한 몇 가지 작업을 수행 비슷한 크롬 브라우저 크롬 브라우저 페이지 렌더링을 가지고 뒤에 사실 Pyppetter에서 먼저 크롬과 크롬 브라우저에서 기원했다.

  Chromium 是谷歌为了研发 Chrome 而启动的项目,是完全开源的。二者基于相同的源代码构建,Chrome 所有的新功能都会先在 Chromium 上实现,待验证稳定后才会移植,因此 Chromium 的版本更新频率更高,也会包含很多新的功能,但作为一款独立的浏览器,Chromium 的用户群体要小众得多。两款浏览器“同根同源”,它们有着同样的 Logo,但配色不同,Chrome 由蓝红绿黄四种颜色组成,而 Chromium 由不同深度的蓝色构成。

Pyppeteer 실행하는 크롬 브라우저에 따라 달라집니다. 그래서 Pyppeteer 후, 우리는 그 지루한 환경 구성 및 기타 문제를 방지 할 수 있습니다. 당신이 처음 실행할 때이 크롬 브라우저가 설치되어 있지 않은 경우, 프로그램은 지루한 작업 환경 구성을 제거, 우리가 자동으로 설치 및 구성하는 데 도움이 될 것입니다. 또한 Pyppeteer 파이썬 비동기 달성의 새로운 기능에 기초하므로 그 실행의 일부는 비동기 동작을 지원하며, 상대 효율 셀레늄도 증가된다.

환경 설치

  • 그래서 Pyppeteer 때문에, 파이썬 비동기 메커니즘을 사용 파이썬 버전의 운영 요구 3.5 이상
  • pyppeteer를 설치 PIP

빠른 시작

 

- 크롤링 http://quotes.toscrape.com/js/  전체 페이지 데이터를

수입 asyncio
 에서 pyppeteer의 수입 발사
 에서 LXML의 수입 etree 
 
비동기 데프 주 () : 
브라우저 = 기다리고 시작 () 
페이지 =이 browser.newPage ()을 기다리고 
page.goto을 기다리고 있습니다 ( ' http://quotes.toscrape.com/js/ ' ) 
page_text = page.content () 기다리고 
나무 = etree.HTML (page_text) 
div_list = tree.xpath ( ' // 사업부의 [에 @ 클래스 = "인용"] ' )
 인쇄가 (LEN (div_list)) 
) (browser.close 기다리고 있습니다
 
asyncio.get_event_loop (). run_until_complete (주 ())
에서 pyppeteer 가져 오기 시작
 가져 오기 ASYNCIO
 에서 LXML 가져 오기 etree의 

#은 (구글 베타) 개체 브라우저의 인스턴스를 
비동기 DEF의 주 () : 
    브로 = await를 출시 ()
     #이 비어있는 새 페이지 만들기 
    = 페이지를 bro.newPage () 
    (page.goto ' http://quotes.toscrape.com/js/ ' ) 

    #이 페이지 데이터 현재 표시된 페이지 소스 획득 
    page_text을 = 이 기다리고 Page.Content () 

    반환 page_text 

DEF 구문 분석 (작업) : 
    page_text = task.result을 () 
    트리= etree.HTML (page_text) 
    div_list = tree.xpath ( ' // 사업부의 [에 @ 클래스 = "인용"] ' )
     에 대한 DIV div_list : 
        내용 = div.xpath ( ' ./span [1] / 텍스트 () ' )
         인쇄 (콘텐츠) 

C = 주 () 
태스크 = asyncio.ensure_future (c) 
task.add_done_callback (파싱) 
루프 = asyncio.get_event_loop () 
loop.run_until_complete (c)
바인딩 코 루틴

 

 설명 :

  브라우저 실행 방법은 새로운 객체를 만든 다음 브라우저에 할당하고 동시에 새로운 페이지 객체를 생성에 NEWPAGE 방법은, 새 브라우저 탭에 해당 호출합니다. 그런 다음 페이지 객체는 고토 방법은 입력이 URL, 현재 브라우저 페이지의 소스 코드로 돌아가, 내용이로드가 완료된 후 메소드를 호출 한 다음 브라우저에로드 해당 페이지로 이동하고있는 브라우저와 동일 호출합니다. 그리고 더, 우리가 pyquery과 같은 결의를 수행, 우리는 자바 스크립트 렌더링 결과를 얻을 수 있습니다. 이 과정에서, 우리는 같은 효과 셀레늄을 달성하기 위해 번거로운 단계를 제거, 브라우저가 드라이브를 구성되지 않은 크롬 브라우저를 구성하지 않은뿐만 아니라 비동기 손잡이를 달성하기 위해.

 

자세한 사용

  • 브라우저를 열고
  • 당신은 발사 메서드를 호출 할 수 있습니다, 관련 매개 변수 소개 :
    • ignoreHTTPSErrors (BOOL)이 : 당신이 오류를 HTTPS 무시 하시겠습니까 기본값은 False입니다.
    • 헤드리스 (BOOL) : DevTools로이 매개 변수는 다음 매개 변수를, 그렇지 않으면 False로 참 true로 설정 될 경우 헤드리스 모드가 활성화되어, 즉 그가없는 디폴트 인터페이스 모드가 활성화되어, 어떤 인터페이스 모드입니다.
    • executablePath (STR) : 기본 크롬을 지정할 필요가없는 경우 실행 파일 경로는 다음, 기존 크롬 또는 크롬을 지정할 수 있습니다.
    • 인수는 (목록에 STR) 구현하는 과정에서 추가적인 파라미터를 전달할 수있다.
    • DevTools로 (BOOL) : 자동으로 각 페이지에 대한 디버깅 도구를 사용 여부, 기본값은 False입니다. 이 매개 변수가 true로 설정되어있는 경우, 헤드리스 매개 변수가 무효가 False로 강제됩니다.
  • 기사가 짜증 메시지, 너희가 그것을 종료 "크롬 제어되는 자동 테스트 소프트웨어"프롬프트 기사를 끄고? 다음과 같이 우리가 인수 매개 변수를 사용하고 작업을 중지해야이 시간은 다음과 같습니다
    • browser = await launch(headless=False, args=['--disable-infobars']) 

 

pyppeteer를 사용하여 기본 모듈

소개

셀레늄은 해당 드라이버를 다운로드하는 공식 웹 사이트로 이동 한 후 한 구성 환경과 관련되는 번거 로움이있을 때, 좋은 상관 관계, 등 크롬, 파이어 폭스 등의 브라우저를 설치 사용되며, 또한 가장 중요한 것은 해당를 설치해야합니다 파이썬 셀레늄 라이브러리는 정말 다음, 또 다른 대규모 배포 경우 수행 환경의 문제의 일부를 구성하는 것은 매우 쉬운 일이 아닙니다 또한 두통이다. 그런 다음이 섹션은 Pyppeteer라는 또 다른 유사한 대안을 소개합니다.

Pyppeteer 프로필

이 섹션이 Pyppeteer 호출되는 모듈이 아닌 인형을 설명합니다. 인형 구글 Node.js를 개발을 기반으로하는 도구이며, 그것은 우리가 자바 스크립트를 통해 크롬 브라우저를 제어 할 수있는 작업의 일부, 물론, 또한 웹 크롤러로 사용할 수, 자사의 API는 매우 강력하고 매우 소리입니다. Pyppeteer는 무엇인가? 실제로 실현의 인형의 파이썬 버전입니다,하지만 그는 구글이 개발되지는 인형의 일부 기능을 기반으로 개발 된 일본의 엔지니어 비공식 버전입니다.

그것은 또한 몇 가지 작업을 수행 비슷한 크롬 브라우저 크롬 브라우저 페이지 렌더링을 가지고 뒤에 사실 Pyppetter에서 먼저 크롬과 크롬 브라우저에서 기원했다.

  Chromium 是谷歌为了研发 Chrome 而启动的项目,是完全开源的。二者基于相同的源代码构建,Chrome 所有的新功能都会先在 Chromium 上实现,待验证稳定后才会移植,因此 Chromium 的版本更新频率更高,也会包含很多新的功能,但作为一款独立的浏览器,Chromium 的用户群体要小众得多。两款浏览器“同根同源”,它们有着同样的 Logo,但配色不同,Chrome 由蓝红绿黄四种颜色组成,而 Chromium 由不同深度的蓝色构成。

Pyppeteer 실행하는 크롬 브라우저에 따라 달라집니다. 그래서 Pyppeteer 후, 우리는 그 지루한 환경 구성 및 기타 문제를 방지 할 수 있습니다. 당신이 처음 실행할 때이 크롬 브라우저가 설치되어 있지 않은 경우, 프로그램은 지루한 작업 환경 구성을 제거, 우리가 자동으로 설치 및 구성하는 데 도움이 될 것입니다. 또한 Pyppeteer 파이썬 비동기 달성의 새로운 기능에 기초하므로 그 실행의 일부는 비동기 동작을 지원하며, 상대 효율 셀레늄도 증가된다.

환경 설치

  • 그래서 Pyppeteer 때문에, 파이썬 비동기 메커니즘을 사용 파이썬 버전의 운영 요구 3.5 이상
  • pyppeteer를 설치 PIP

빠른 시작

 

- 크롤링 http://quotes.toscrape.com/js/  전체 페이지 데이터를

수입 asyncio
 에서 pyppeteer의 수입 발사
 에서 LXML의 수입 etree 
 
비동기 데프 주 () : 
브라우저 = 기다리고 시작 () 
페이지 =이 browser.newPage ()을 기다리고 
page.goto을 기다리고 있습니다 ( ' http://quotes.toscrape.com/js/ ' ) 
page_text = page.content () 기다리고 
나무 = etree.HTML (page_text) 
div_list = tree.xpath ( ' // 사업부의 [에 @ 클래스 = "인용"] ' )
 인쇄가 (LEN (div_list)) 
) (browser.close 기다리고 있습니다
 
asyncio.get_event_loop (). run_until_complete (주 ())

추천

출처www.cnblogs.com/bilx/p/11572838.html