>  기사  >  백엔드 개발  >  Python 다중 스레드 크롤러에서 발생하는 함정

Python 다중 스레드 크롤러에서 발생하는 함정

鸟救山
鸟救山원래의
2020-05-20 11:03:05118검색

Python 다중 스레드 크롤러 메서드에는 기능적 메서드와 클래스 개체 메서드가 포함됩니다. 1. 기능적 start_new_thread(func,args[]). 코드 예시는 다음과 같습니다.

Python 다중 스레드 크롤러에서 발생하는 함정

그림 1: 기능적 멀티스레딩

2. Thread 클래스를 호출하는 클래스 객체 메소드의 코드 예시는 다음과 같습니다.

Python 다중 스레드 크롤러에서 발생하는 함정

그림 2: 클래스 객체 메소드 멀티스레딩 코드 구조 및 프로세스:

스레딩 모듈을 소개합니다.

threading.Thread 클래스를 상속하도록 하위 클래스 myThread를 정의합니다.

상위 클래스 Thread의 run() 메소드를 재정의하고, 그 안의 함수 코드를 실행합니다.

스레드 객체를 인스턴스화합니다.

스레드 실행을 시작합니다. start()

실행이 완료될 때까지 스레드 큐에 합류하고, Join() .

발생한 문제:

하위 클래스 정의 시 클래스 정의 및 클래스 내 참조 메서드 print_time()에서 오류가 발생했습니다. 구체적인 코드와 오류는 그림 2와 그림 3에 나와 있습니다.

Python 다중 스레드 크롤러에서 발생하는 함정

그림 2: 오류 코드

Python 다중 스레드 크롤러에서 발생하는 함정

그림 3: 오류 메시지

2. 특정 크롤링 적용http://www.78b2b.com/lianghuizhuanti/324826_1.html 웹페이지 정보 문제 발생 그 과정에서. 특정 코드는 그림 4에 나와 있습니다.

Python 다중 스레드 크롤러에서 발생하는 함정

Python 다중 스레드 크롤러에서 발생하는 함정

그림 4: 특정 애플리케이션 코드

코드의 목적은 멀티스레딩을 사용하여 13개 웹 페이지에서 2020년 랴오닝 정부 업무 보고서를 크롤링하는 것입니다. 그리고 로컬 TXT에 저장합니다. 파일에서 실행과정에서 웹페이지는 다 열리는데 TXT 저장 데이터가 불완전하고 내용이 반복적으로 쓰여지는 현상이 있습니다.

위 내용은 Python 다중 스레드 크롤러에서 발생하는 함정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.