Python 파충류 인 스 턴 스: 위 챗 공중 번호 사진 (이모 티 콘)
4019 단어 파 이 썬 파충류
간단 한 파충류 의 집필 을 배 운 후에 저 는 공중 번호 사진 (이모 티 콘) 을 작성 하여 제 채 팅 기능 을 풍부 화시 키 려 고 했 습 니 다. 또한 각종 판다 머리 에 패 하지 않 았 습 니 다.requests 라 이브 러 리 를 배 운 후에 정적 페이지 의 정 보 를 쉽게 얻 고 웹 페이지 의 대상 을 로 컬 로 가 져 올 수 있 습 니 다.그러나 이 때 복잡 한 웹 페이지 정 보 를 어떻게 해석 하 는 지 는 정규 표현 식 이나 이번에 공 유 된 BeautifulSoup 라 이브 러 리 에 사용 해 야 합 니 다.BeautifulSoup 은 매우 사용 하기 좋 은 제3자 해석 기 입 니 다. 공식 설명 문서 호출 방법 을 구체 적 으로 소개 하고 사용 합 니 다.
from bs4 import BeautifulSoup
알고리즘 사고
사용 하 는 주요 제3자 라 이브 러 리 는 Re 라 이브 러 리, Requests 라 이브 러 리 와 BeautifulSoup 라 이브 러 리 가 있 습 니 다.그 후에 저 는 getHTMLText () 함 수 를 작 성 했 습 니 다. 지정 한 url 의 html 정 보 를 얻 었 습 니 다. getimgURL () 함 수 를 작 성 했 습 니 다. 한 글 의 모든 그림 링크 를 얻 었 고 download (adlist) 함 수 를 작 성 했 습 니 다. 폴 더 를 새로 만 들 거나 폴 더 를 열 어 그림 을 다운로드 하고 저장 합 니 다. 마지막 으로 주 함수 에서 올 라 가 려 는 공중 번호 의 글 주 소 를 주 고 함수 로 순서대로 실행 하면 됩 니 다.1. 웹 페이지 정 보 를 가 져 오 려 면 requests 라 이브 러 리 의 get 함 수 를 사용 하여 웹 페이지 정 보 를 가 져 오 는 함 수 를 정의 합 니 다.
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ""
2. 웹 페이지 분석, 모든 그림 url 가 져 오기 BeautifulSoup 라 이브 러 리 호출, find 사용all () 함수 가 웹 페이지 img 탭 에 있 는 정 보 를 찾 은 다음 정규 표현 식 을 통 해 url 을 가 져 와 adlist 목록 에 저장 합 니 다.이전 고서 망 에 올 라 간 소감 을 비교 해 보면 BeautifulSoup 라 이브 러 리 와 정규 표현 식 의 조합 형식 을 사용 하면 웹 페이지 를 효과적으로 분석 할 수 있 고 해석 오류 가 발생 하지 않 는 다 는 것 을 알 수 있다.
def getimgURL(html):
soup = BeautifulSoup(html , "html.parser")
adlist=[]
for i in soup.find_all("img"):
try:
ad= re.findall(r'.*src="(.*?)?" .*',str(i))
if ad :
adlist.append(ad)
except:
continue
return adlist
3. 새 폴 더 pic, 기어 오 르 는 그림 정 보 를 다운로드 하고 저장 하려 면 다운로드 경로 루트 를 설정 한 다음 경로 가 존재 하 는 지 판단 하고 존재 하지 않 으 면 새 경 로 를 만 든 다음 get () 함수 가 위 에서 얻 은 그림 링크 를 통 해 다운로드 하고 지정 한 경로 에 저장 합 니 다.
def download(adlist):
#
root="C:\\Users\yllzxzyq\Desktop\pics\\"
for i in range(len(adlist)):
path=root+str(i)+"."+‘tif’
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(adlist[i][0])
with open(path,'wb') as f:
f.write(r.content)
f.close()
4. 주 함 수 는 url 을 주 고 상기 함 수 를 순서대로 호출 하여 공중 번호 문장의 모든 그림 을 기어 올 라 지정 한 디 렉 터 리 가 존재 합 니 다.
def main():
url = 'https://mp.weixin.qq.com/s/iX-6WDd21W4k21MDp0RYDA'
html=getHTMLText(url)
list=getimgURL(html)
download(list)
main()
모든 원본 링크 추가:
import requests
from bs4 import BeautifulSoup
import re
import os
#
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return ""
# , url
def getimgURL(html):
soup = BeautifulSoup(html , "html.parser")
adlist=[]
for i in soup.find_all("img"):
try:
ad= re.findall(r'.*src="(.*?)?" .*',str(i))
if ad :
adlist.append(ad)
except:
continue
return adlist
# pic,
def download(adlist):
#
root="C:\\Users\yllzxzyq\Desktop\ \\"
for i in range(len(adlist)):
path=root+str(i)+"."+'gif'
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(adlist[i][0])
with open(path,'wb') as f:
f.write(r.content)
f.close()
def main():
url = 'https://mp.weixin.qq.com/s/iX-6WDd21W4k21MDp0RYDA'
html=getHTMLText(url)
list=getimgURL(html)
download(list)
main()
도움 이 되 셨 으 면 좋 겠 습 니 다. 읽 어 주 셔 서 감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python 파충류 (1) - 데이터 세척 및 추출re 모듈 의 사용 추출, 일치, 교체 추출: findall () 일치: match () 교체: sub () 예: Xpath 의 기본 문법 표현 식 묘사 하 다. 루트 노드 선택 또는 하위 임의의 노드, 위치 고려 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.