Python 파충류 가 지정 한 웹 페이지 그림 코드 인 스 턴 스 를 캡 처 합 니 다.
(1)사이트 링크 를 지정 하고 이 사이트 의 소스 코드 를 캡 처 합 니 다(구 글 브 라 우 저 를 사용 하면 마우스 오른쪽 단 추 를 누 릅 니 다->Inspect->Elements 의 html 내용)
(2)캡 처 할 내용 에 따라 정규 표현 식 을 설정 하여 캡 처 할 내용 과 일치 하도록 합 니 다.
(3)순환 목록 을 설정 하고 내용 을 반복 해서 캡 처 하고 저장 합 니 다.
다음은 지 정 된 웹 페이지 의 그림 을 캡 처 하 는 두 가지 방법 을 소개 한다.
(1)방법 1:정규 표현 식 으로 잡 은 html 내용 문자열 을 걸 러 냅 니 다.
#
import urllib.request # python url
import re #
# url, url html
def getHtmlCode(url):
# ,
headers = {
'User-Agent': 'Mozilla/5.0(Linux; Android 6.0; Nexus 5 Build/MRA58N) \
AppleWebKit/537.36(KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'
}
# headers url,
url = urllib.request.Request(url, headers=headers)
# url
page = urllib.request.urlopen(url).read()
#
page = page.decode('UTF-8')
return page
# html , img ,
def getImage(page):
# [^\s]*? ,
# imageList = re.findall(r'(https:[^\s]*?(png))"', page)
imageList = re.findall(r'(https:[^\s]*?(jpg|png|gif))"', page)
x = 0
#
for imageUrl in imageList:
try:
print(' : %s' % imageUrl[0])
# image
image_save_path = './image/%d.png' % x
#
urllib.request.urlretrieve(imageUrl[0], image_save_path)
x = x + 1
except:
continue
pass
if __name__ == '__main__':
#
url = "https://www.cnblogs.com/ttweixiao-IT-program/p/13324826.html"
#
page = getHtmlCode(url)
#
getImage(page)
# print(page)
코드 에서 수정 해 야 할 것 은 imageList=re.findall(r')(https:[^\s]*?(jpg|png|gif)","page)"라 는 내용 을 캡 처 하려 는 내용 에 따라 정규 표현 식 을 어떻게 설계 하 는 지 설정 해 야 합 니 다.나의 디자인 출처 는 다음 과 같다.이 페이지 의 그림 은 모두 png 형식 이기 때문에 imageList=re.findall(r)(https:[^\s]*?(png)","page"도 가능 합 니 다.
(2)방법 2:BeautifulSoup 라 이브 러 리 로 html 페이지 분석
from bs4 import BeautifulSoup # BeautifulSoup python HTML/XML , Python
import urllib # python url
# url, url html
def getHtmlCode(url):
# ,
headers = {
'User-Agent': 'Mozilla/5.0(Linux; Android 6.0; Nexus 5 Build/MRA58N) \
AppleWebKit/537.36(KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'
}
# headers url,
url = urllib.request.Request(url, headers=headers)
# url
page = urllib.request.urlopen(url).read()
#
page = page.decode('UTF-8')
return page
# html , img ,
def getImage(page):
# html
soup = BeautifulSoup(page, 'html.parser')
# DOM
print(soup.prettify())
# img , Html <img src="..." alt=".." />
imgList = soup.find_all('img')
x = 0
# , , 2 , debug
for imgUrl in imgList[1:]:
print(' : %s ' % imgUrl.get('src'))
# scr , Url , 'https://img2020.cnblogs.com/blog/1703588/202007/1703588-20200716203143042-623499171.png'
image_url = imgUrl.get('src')
# image
image_save_path = './image/%d.png' % x
#
urllib.request.urlretrieve(image_url, image_save_path)
x = x + 1
if __name__ == '__main__':
#
url = 'https://www.cnblogs.com/ttweixiao-IT-program/p/13324826.html'
#
page = getHtmlCode(url)
#
getImage(page)
이 두 가지 방법 은 각각 장단 점 이 있 습 니 다.저 는 이 두 가지 방법 을 유연 하 게 결합 하여 사용 할 수 있다 고 생각 합 니 다.예 를 들 어 먼저 사용 방법 2 에서 지정 한 라벨 의 방법 으로 찾 아야 할 내용 범 위 를 좁 힌 다음 에 정규 표현 식 으로 원 하 는 내용 과 일치 하 게 하면 더욱 간결 하고 명료 합 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.