Python 은 파충류 로 정적 웹 페이지 그림 을 기어 오 르 는 방법 에 대해 상세 하 게 설명 합 니 다.
파충류 이론 적 기초
사실 파충 류 는 모두 가 상상 하 는 것 처럼 그렇게 복잡 하지 않다.때로는 몇 줄 의 코드 일 뿐 이 니 절대 자신 을 놀 라 쓰 러 뜨리 지 마라.이 편 은 파 이 썬 파충 류 를 이용 한 이론 적 기 초 를 분명하게 설명 한다.
먼저 파충류 가 세 단계 로 나 뉘 는데 세 가지 도구 가 필요 하 다 는 것 을 설명 한다.
① 웹 다운로드 기 를 이용 하여 웹 페이지 의 소스 코드 등 자원 을 다운로드 한다.
② URL 관리 자 를 이용 하여 다운로드 한 URL 관리
③ 웹 페이지 해상도 기 를 이용 하여 필요 한 URL 을 분석 하여 일치 시 킵 니 다.
웹 페이지 다운 로 더
웹 다운로드 기 에서 자주 사용 하 는 것 은 두 가지 가 있다.하 나 는 Python 이 자체 적 으로 가지 고 있 는 urllib 2 모듈 입 니 다.다른 하 나 는 제3자 컨트롤 requests 입 니 다.어떤 것 을 선택 하 느 냐 에 따라 차이 가 크 지 않 고 다음 편 에 서 는 실천 작업 예 를 들 것 이다.
URL 관리자
url 관리 자 는 세 가지 종류 가 있 습 니 다.
① 메모리:set 형식 으로 메모리 에 저장
② 관계 형 데이터베이스 mysql 등에 저장
③ 캐 시 데이터베이스 redis 중
웹 페이지 해석 기
웹 페이지 해상도 기 는 모두 네 가지 종류 가 있 습 니 다.
1.정규 표현 식 이지 만 너무 복잡 한 매 칭 은 어렵 고 모호 한 매 칭 에 속 합 니 다.
2.html.parser,python 자체 분석 도구 입 니 다.
3.Beautiful Soup 은 제3자 컨트롤 로 말 그대로 맛 있 는 수프 로 사용 하기에 정말 편리 하고 강하 다.
4.lxml(apt.xml),제3자 컨트롤.
이상 의 것들 은 모두 구조 화 해석(DOM 트 리)에 속 합 니 다.
어떤 구조 화 해석(DOM)입 니까?
Document Object Model(DOM)은 나무의 형식 이다.
Beautiful Soup 의 문법
html 웹 페이지―>BeautifulSoup 대상 만 들 기->검색 노드 findall()/find()―>접근 노드,이름,속성,문자 등...
Beautiful Soup 공식 문서
구현 코드
이론 적 기반 을 말 했 으 니 이제 하 나 를 실천 하고 정적 웹 페이지 의 모든 그림 을 찾 아야 한다.
여기 서 사용 하 는 웹 다운로드 기 는 python 이 자체 적 으로 가지 고 있 는 urllib 2 이 며,정규 표현 식 을 이용 하여 결 과 를 출력 합 니 다.
다음은 소스 코드 입 니 다.
//
import urllib2
import re
def main():
// urllib2 urlopen , url
req = urllib2.urlopen('http://www.imooc.com/course/list')
// buf
buf = req.read()
// buf url 。 , , F12 。 , , , 。
listurl = re.findall(r'src=.+\.jpg',buf)
i = 0
//
for url in listurl:
f = open(str(i)+'.jpg','w')
req = urllib2.urlopen(url[5:])
buf1 = req.read()
f.write(buf1)
i+=1
if __name__ == '__main__':
main()
이로써 정적 웹 페이지 의 그림 파충류 가 완성 되 었 으 니 다음은 효 과 를 살 펴 보 자.이것 은 정적 웹 페이지 입 니 다:
다음은 기어 오 른 결과:
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,,,,,
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.