Python 파충 류 는 웹 페이지 그림 을 대량으로 기어 서 로 컬 구현 코드 에 저장 합 니 다.

사실은 일반 데이터 의 본질 을 기어 오 르 는 것 과 같 지만 우 리 는 데 이 터 를 직접 기어 오 르 면 바로 돌아 갑 니 다.그림 을 기어 오 르 려 면 바 이 너 리 데이터 로 처리 하여 그림 형식(.jpg,.png 등)의 데이터 텍스트 로 저장 해 야 합 니 다.
이제 url 을 붙 입 니 다=https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg
위의 url 을 복사 하여 어떤 브 라 우 저 에서 직접 열 면 다음 과 같은 내용 을 볼 수 있 습 니 다.
在这里插入图片描述
이것 이 바로 웹 페이지 를 통 해 방문 한 이 사이트 의 이 사진 입 니 다.그래서 우 리 는 requests 모듈 을 직접 이용 하여 이 그림 의 요 구 를 할 수 있 습 니 다.그래서 이 사 이 트 는 우리 에 게 이 그림 의 데 이 터 를 되 돌려 줄 것 입 니 다.우 리 는 데 이 터 를 로 컬 파일 에 기록 하면 됩 니 다.비교적 간단 합 니 다.

import requests
headers={
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
url='https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg'
re=requests.get(url,headers=headers)
print(re.status_code)#      ,  200    
path='test.jpg'#      
with open(path, 'wb') as f:#         ,wb       
      for chunk in re.iter_content(chunk_size=128):
        f.write(chunk)
그리고 test.jpg 그림 을 얻 으 면 다음 과 같 습 니 다.
在这里插入图片描述
클릭 하여 아래 보기:
在这里插入图片描述
다운로드 성공 매 운,간단 하 죠?
현재 대량 다운 로드 를 분석 하면 우 리 는 위의 코드 를 하나의 함수 로 포장 합 니 다.그래서 모든 그림 에 대해 하나의 이름,하나의 그림 파일 로 요청 합 니 다.그래서 다음 과 같은 코드 가 있 습 니 다.

import requests
def get_pictures(url,path):
  headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'} 
  re=requests.get(url,headers=headers)
  print(re.status_code)#      ,  200    
  with open(path, 'wb') as f:#         ,wb       
        for chunk in re.iter_content(chunk_size=128):
          f.write(chunk)
url='https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg'
path='test.jpg'#      
get_pictures(url,path)
현재 사진 을 대량으로 다운로드 하 는 것,즉 사진 을 대량으로 얻 는 url 을 실현 하려 면 우 리 는 웹 페이지 의 코드 구 조 를 분석 하고 원시 사이트https://www.ivsky.com/tupian/bianxingjingang_v622/를 열 면 다음 과 같은 사진 을 볼 수 있다.
在这里插入图片描述
따라서 우 리 는 이 페이지 에 표 시 된 모든 그림 의 url 을 각각 받 아야 합 니 다.그래서 우 리 는 다시 requests 모듈 로 현재 페이지 의 내용 을 되 돌려 줍 니 다.다음 과 같 습 니 다.

import requests
headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
url='https://www.ivsky.com/tupian/bianxingjingang_v622/'
re=requests.get(url,headers=headers)
print(re.text)
실행 은 현재 이 페이지 의 웹 페이지 구조 내용 을 되 돌려 줍 니 다.그래서 우 리 는 그림 과 관련 된.jpg 또는.png 등 그림 형식의 쪽 지 를 찾 았 습 니 다.다음 과 같 습 니 다.
在这里插入图片描述
위 에 동 그 라 미 를 친**/img.ivsky.com/img/tupian/t/2010 08/05/bianxingjing-017.jpg**는 바로 우리 의 그림 url 이지 만 앞 에 https 를 더 해 야 하기 때문에 완 성 된 url 은https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-017.jpg입 니 다.
우 리 는 이 구 조 를 알 게 되 었 다.지금 은 이것 을 추출 하여 간단 한 해석 식 을 쓰 는 것 이다.

import requests
headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
url='https://www.ivsky.com/tupian/bianxingjingang_v622/'
re=requests.get(url,headers=headers)
def get_pictures_urls(text):
  st='img src="'
  m=len(st)
  i=0
  n=len(text)
  urls=[]#  url
  while i<n:
    if text[i:i+m]==st:
      url=''
      for j in range(i+m,n):
        if text[j]=='"':
          i=j
          urls.append(url)
          break
        url+=text[j]
    i+=1
  return urls
urls=get_pictures_urls(re.text)
for url in urls:
  print(url)
인쇄 결 과 는 다음 과 같 습 니 다.
在这里插入图片描述
url 을 얻 었 습 니 다.지금 바로 시작 하 는 get 을 넣 습 니 다.pictures 함수 에서 그림 이 맵 습 니 다.

import requests
def get_pictures(url,path):
  headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
  re=requests.get(url,headers=headers)
  print(re.status_code)#      ,  200    
  with open(path, 'wb') as f:#         ,wb       
        for chunk in re.iter_content(chunk_size=128):
          f.write(chunk)
def get_pictures_urls(text):
  st='img src="'
  m=len(st)
  i=0
  n=len(text)
  urls=[]#  url
  while i<n:
    if text[i:i+m]==st:
      url=''
      for j in range(i+m,n):
        if text[j]=='"':
          i=j
          urls.append(url)
          break
        url+=text[j]
    i+=1
  return urls

headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
url='https://www.ivsky.com/tupian/bianxingjingang_v622/'
re=requests.get(url,headers=headers)
urls=get_pictures_urls(re.text)#           url
for i in range(len(urls)):#      
  url='https:'+urls[i]
  path='    '+str(i)+'.jpg'
  get_pictures(url,path)
결 과 는 다음 과 같다.
在这里插入图片描述
그 다음 에 매 운 것 을 완성 합 니 다.여 기 는 사진 을 대량으로 얻 는 과정 을 간단하게 소개 할 뿐 입 니 다.구체 적 인 사 이 트 는 구체 적 인 분석 이 필요 합 니 다.그래서 본 고 는 사진 을 대량으로 얻 는 과정 분석 을 상세 하 게 보 여 주 었 습 니 다.당신 의 학습 에 도움 이 되 기 를 바 랍 니 다.문제 가 있 으 면 신속하게 지적 해 주 십시오.감사합니다.
파 이 썬 파충류 가 대량으로 웹 페이지 를 기어 올 라 가 로 컬 에 저장 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 파충류 가 사진 을 기어 올 라 로 컬 에 저장 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 저 희 를 많이 응원 해 주세요!

좋은 웹페이지 즐겨찾기