인터넷에 있는 대부분의 Python 튜토리얼은 2.X 버전입니다. python3.X와 비교하면 python2.X는 많은 라이브러리가 다르게 설치되어 있습니다. .예
0x01
봄 축제 기간 동안 할 일이 없어서(얼마나 한가한지) 농담을 하고 프로그램 작성 과정을 기록하기 위해 간단한 프로그램을 작성했습니다. 제가 크롤러들과 처음 접한 건 이런 글을 봤을 때였습니다. 오믈렛에서 여자들이 크롤링하는 사진에 대한 재미있는 글이었죠. 그래서 고양이와 호랑이 흉내를 내기 시작했고 사진도 몇 장 찍었습니다.
기술은 미래에 영감을 줍니다. 프로그래머로서 어떻게 그런 일을 할 수 있습니까? 신체적, 정신적 건강에 더 좋은 농담을 만드는 것이 더 낫습니다.
0x02
팔을 걷어붙이고 시작하기 전에 몇 가지 이론적 지식을 대중화해 보겠습니다.
간단히 말하면 웹페이지의 특정 위치에 콘텐츠를 끌어내려야 합니다. 어떻게 끌어내려야 할까요? 먼저 웹페이지를 분석하여 어떤 콘텐츠가 있는지 확인해야 합니다. 필요. 예를 들어, 이번에 크롤링한 것은 재미있는 웹사이트의 농담인데, 재미있는 웹사이트의 농담 페이지를 열면 이러한 콘텐츠를 얻는 것이 우리의 목적입니다. 읽고 나서 진정하세요. 계속 이렇게 웃으면 우리는 코드를 작성할 수 없습니다. Chrome에서는 Inspect Element를 연 다음 HTML 태그를 레벨별로 확장하거나 작은 마우스를 클릭하여 필요한 요소를 찾습니다.
마지막으로
의 내용이 우리에게 필요한 농담임을 알 수 있습니다. . 따라서 이 웹페이지에서 모든
를 찾은 다음 내부 콘텐츠를 추출하면 작업이 완료됩니다.
0x03
자, 이제 목적을 알았으니 이제 본격적으로 시작하겠습니다. 여기서는 python3을 사용하고 있습니다. python2와 python3의 선택은 모두가 스스로 결정할 수 있지만 약간의 차이가 있습니다. 하지만 여전히 python3을 사용하는 것이 좋습니다.
필요한 콘텐츠를 내려야 합니다. 먼저 이 웹페이지를 내려야 합니다. 여기서는 urllib라는 라이브러리를 사용하여 가져옵니다. 전체 웹페이지.
먼저 urllib를 가져옵니다
코드 복사 코드는 다음과 같습니다.
import urllib.request as request
그런 다음 요청을 사용하여 웹페이지를 가져올 수 있습니다.
코드를 복사하세요 코드는 다음과 같습니다.
def getHTML(url ):
return request.urlopen(url).read()
인생은 짧습니다. 저는 Python을 사용하고, 코드 한 줄, 웹페이지를 다운로드한다고 하더군요. 파이썬을 사용하지 않을 이유가 없습니다.
웹페이지를 다운로드한 후 웹페이지를 구문 분석하여 필요한 요소를 가져와야 합니다. 요소를 구문 분석하려면 Beautiful Soup이라는 또 다른 도구를 사용해야 합니다. 이를 사용하면 HTML과 XML을 빠르게 구문 분석하고 필요한 요소를 얻을 수 있습니다.
코드 복사 코드는 다음과 같습니다.
soup = BeautifulSoup(getHTML("http://www.pengfu. com/xiaohua_1 .html"))
BeautifulSoup을 사용하여 웹 페이지를 구문 분석하는 것은 한 문장에 불과하지만 코드를 실행하면 구문 분석기를 지정하라는 경고 메시지가 나타납니다. 그렇지 않으면 작동하지 않을 수 있습니다. 다른 플랫폼에서 또는 시스템에서 오류가 보고됩니다.
코드 복사 코드는 다음과 같습니다.
/Library/Frameworks/Python.framework/Versions/3.5/lib/ python3.5 /site-packages/bs4/__init__.py:181: UserWarning: 구문 분석기가 명시적으로 지정되지 않았으므로 이 시스템에 가장 적합한 HTML 구문 분석기("lxml")를 사용하고 있습니다. 이는 일반적으로 문제가 되지 않습니다. , 그러나 이 코드를 다른 시스템이나 다른 가상 환경에서 실행하면 다른 파서를 사용하여 다르게 동작할 수 있습니다.
이 경고를 발생시킨 코드는 joke.py 파일의 64번째 줄에 있습니다. . 이 경고를 없애려면 다음과 같은 코드를 변경하세요.
BeautifulSoup([your markup])
이것으로:
BeautifulSoup([your markup], "lxml" )
markup_type=markup_type))
파서의 유형과 파서 간의 차이점은 현재 공식 문서에 자세히 설명되어 있습니다. lxml 파싱을 사용하는 것이 더 안정적입니다. .
수정 후
코드 복사 코드는 다음과 같습니다.
soup = BeautifulSoup(getHTML("http: //www.pengfu.com/xiaohua_1.html", 'lxml'))
이렇게 하면 위의 경고가 발생하지 않습니다.
코드 복사 코드는 다음과 같습니다.
p_array = 수프.find_all('p', {'class': "content- imgclearfix pt10relative"})
find_all 함수를 사용하여 class = content-imgclearfix pt10relative의 모든 p 태그를 찾은 다음 이 배열을 탐색합니다
코드 복사 코드는 다음과 같습니다.
for x in p_array: content = x.string
이런 방식으로 대상의 내용을 가져옵니다. 피. 이 시점에서 우리는 목표를 달성했고 농담에 이르렀습니다.
그런데 같은 방법으로 크롤링하면 이런 오류가 보고됩니다
코드를 복사하세요 코드는 다음과 같습니다
raise RemoteDisconnected("Remote end Closed Connection Without" http.client.RemoteDisconnected: 원격 끝에서 응답 없이 연결을 닫았습니다
원격 끝에서 응답이 없다고 나와 링크를 닫고 네트워크를 확인한 후 문제가 없는 걸까요? 자세가 잘못된 걸까요?
패킷을 캡처하기 위해 찰스를 열면 응답이 없습니다. 아, 브라우저에서 액세스할 수 없는 이유는 무엇입니까? Charles를 살펴본 후 urllib를 사용하여 시작된 요청의 경우 UA 기본값은 Python-urllib/3.5이고 Chrome에서 UA에 액세스할 때는 User-Agent:Mozilla/5.0(Macintosh, Intel Mac OS X 10_12_3)이라는 것을 발견했습니다. ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36, 서버가 UA 기반 Python 크롤러를 거부하기 때문일까요? 위장하여 시도해보고 작동하는지 확인해 보겠습니다
코드 복사 코드는 다음과 같습니다.
def getHTML(url):
headers = {'User-Agent': 'User-Agent :Mozilla /5.0 (Macintosh; Intel Mac OS .urlopen(req).read()
이런 식으로 Python을 Chrome으로 위장하여 Qibai의 웹페이지를 얻어와서 원활하게 데이터를 얻을 수 있습니다.
이제 Python을 사용하여 Qibaihe를 크롤링할 수 있습니다. Pangbelly.com의 농담은 끝났습니다. 해당 웹 페이지를 분석하고 관심 있는 요소를 찾고 Python의 강력한 기능을 사용하면 됩니다. 목표를 달성하려면 XXOO 사진이든 농담이든 한 번의 클릭으로 할 수 있습니다. 더 이상 이야기하지 않고 소녀 사진을 찾아 보겠습니다.
# -*- coding: utf-8 -*- import sys import urllib.request as request from bs4 import BeautifulSoup def getHTML(url): headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'} req = request.Request(url, headers=headers) return request.urlopen(req).read() def get_pengfu_results(url): soup = BeautifulSoup(getHTML(url), 'lxml') return soup.find_all('p', {'class':"content-img clearfix pt10 relative"}) def get_pengfu_joke(): for x in range(1, 2): url = 'http://www.pengfu.com/xiaohua_%d.html' % x for x in get_pengfu_results(url): content = x.string try: string = content.lstrip() print(string + '\n\n') except: continue return def get_qiubai_results(url): soup = BeautifulSoup(getHTML(url), 'lxml') contents = soup.find_all('p', {'class':'content'}) restlus = [] for x in contents: str = x.find('span').getText('\n','<br/>') restlus.append(str) return restlus def get_qiubai_joke(): for x in range(1, 2): url = 'http://www.qiushibaike.com/8hr/page/%d/?s=4952526' % x for x in get_qiubai_results(url): print(x + '\n\n') return if __name__ == '__main__': get_pengfu_joke() get_qiubai_joke()
더 많은 python3 제작의 재미있는 웹페이지 크롤러와 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

NumpyArraysareSentialplosplicationSefficationSefficientNumericalcomputationsanddatamanipulation. Theyarcrucialindatascience, MachineLearning, Physics, Engineering 및 Financeduetotheiribility에 대한 handlarge-scaledataefficivally. forexample, Infinancialanyaly

UseanArray.ArrayOveralistInpyThonWhendealingwithhomogeneousData, Performance-CriticalCode, OrinterFacingwithCcode.1) HomogeneousData : ArraysSaveMemorywithtypepletement.2) Performance-CriticalCode : arraysofferbetterporcomanceFornumericalOperations.3) Interf

아니요, NOTALLLISTOPERATIONARESUPPORTEDBYARRARES, andVICEVERSA.1) ArraySDONOTSUPPORTDYNAMICOPERATIONSLIKEPENDORINSERTWITHUTRESIGING, WHITHIMPACTSPERFORMANCE.2) ListSDONOTEECONSTANTTIMECOMPLEXITEFORDITITICCESSLIKEARRAYSDO.

ToaccesselementsInapyThonlist, 사용 인덱싱, 부정적인 인덱싱, 슬라이스, 오리 화.

Arraysinpython, 특히 비밀 복구를위한 ArecrucialInscientificcomputing.1) theaRearedFornumericalOperations, DataAnalysis 및 MachinELearning.2) Numpy'SimplementationIncensuressuressurations thanpythonlists.3) arraysenablequick

Pyenv, Venv 및 Anaconda를 사용하여 다양한 Python 버전을 관리 할 수 있습니다. 1) PYENV를 사용하여 여러 Python 버전을 관리합니다. Pyenv를 설치하고 글로벌 및 로컬 버전을 설정하십시오. 2) VENV를 사용하여 프로젝트 종속성을 분리하기 위해 가상 환경을 만듭니다. 3) Anaconda를 사용하여 데이터 과학 프로젝트에서 Python 버전을 관리하십시오. 4) 시스템 수준의 작업을 위해 시스템 파이썬을 유지하십시오. 이러한 도구와 전략을 통해 다양한 버전의 Python을 효과적으로 관리하여 프로젝트의 원활한 실행을 보장 할 수 있습니다.

Numpyarrayshaveseveraladvantagesstandardpythonarrays : 1) thearemuchfasterduetoc 기반 간증, 2) thearemorememory-refficient, 특히 withlargedatasets 및 3) wepferoptizedformationsformationstaticaloperations, 만들기, 만들기

어레이의 균질성이 성능에 미치는 영향은 이중입니다. 1) 균질성은 컴파일러가 메모리 액세스를 최적화하고 성능을 향상시킬 수 있습니다. 2) 그러나 유형 다양성을 제한하여 비 효율성으로 이어질 수 있습니다. 요컨대, 올바른 데이터 구조를 선택하는 것이 중요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
