파 이 썬 이 배 를 기어 오 르 는 동 영상의 예시

5244 단어 python파충
오 르 기 프로 세 스(미식 구역 에서 가장 뜨 거 운 라벨 아래 세 개의 동 영상)
  • 첫 페이지 에서 영상의 번호 와 이름 을 가 져 옵 니 다
  • 맞 춤 형 url
  • 동 영상 저장
  • 사고의 방향
    1.웹 페이지 에서 동 영상 을 가 져 오 는 url

    비디오 를 발견 한 url 은 id 가"Jprism Player"인 div 태그 의 video 태그 src 속성 에서 xpath 는 웹 페이지 를 분석 합 니 다.
    
    video_url = tree.xpath("//div[@id='JprismPlayer']/video/@src")
    그러나 되 돌아 오 는 값 이 비어 있 습 니 다.즉,이 video 라벨 은 원래 웹 페이지 에 존재 하지 않 고 동적 으로 불 러 올 수 있 습 니 다.
    2.동적 요청 으로 동 영상 url 가 져 오기

    역시 동적 요청 에서 비디오 url 이 포 함 된 제 이 슨 데 이 터 를 발 견 했 습 니 다.

    그러나 요청 을 한 후 받 은 제 이 슨 데 이 터 는 패키지 도구 에서 보 이 는 것 과 다 릅 니 다.요청 헤더 에 Referer 인 자 를 추가 해 보 세 요.referer 를 보면 마지막 비디오뒤 에는 첫 페이지 에 있 는 동 영상 번호 가 붙 어 있 습 니 다.
    
    {
    	"resultCode":"1",
    	"resultMsg":"success", "reqId":"fd1c910d-f49a-431a-b9a4-9c193c3c1983",
    	"systemTime": "1611666178518",
    	"videoInfo":{"playSta":"1","video_image":"https://image1.pearvideo.com/cont/20210125/11107897-184717-1.png","videos":{"hdUrl":"","hdflvUrl":"","sdUrl":"","sdflvUrl":"","srcUrl":"https://video.pearvideo.com/mp4/third/20210125/1611666178518-11107897-181816-hd.mp4"}}
    }
    headers 에 Refer 를 넣 고 제 이 슨 데 이 터 를 무사히 받 았 습 니 다.

    json 데이터 에 있 는 동 영상 url 에 요청 한 것 은 404 페이지 입 니 다.
    3.정확 한 URL 맞 추기
    여기 서 어디 에 문제 가 있 는 지 생각 하 는 데 오 랜 시간 이 걸 렸 습 니 다.앞의 절 차 를 여러 번 정리 한 후에 야 알 수 있 었 습 니 다.사실은 동적 으로 돌아 오 라 고 요청 한 제 이 슨 데이터 의 영상 url 과 홈 페이지 video 태그 의 영상 url 은 전혀 일치 하지 않 습 니 다.

    첫 페이지 에 불 러 온 동 영상 링크 는 정확 하고 동 영상 을 순조롭게 받 을 수 있 으 며 제 이 슨 데이터 의 링크 는 404 로 돌아 갑 니 다.그들 을 비교 해 보면 앞부분 은 같 지만 붉 은 선 틀 이 있 는 곳 에 가면 다르다.
    정확 한 url 은 cont-영상 id-
    제 이 슨 데이터 의 url 부분 은 숫자 입 니 다.
    그러면 이 숫자 를 cont-영상 id-형식 으로 바 꾸 면 정확 한 영상 url 을 얻 을 수 있 습 니 다.
    코드
    
    #      
    
    import requests
    from lxml import etree
    import os
    from multiprocessing import Pool
    
    #      url
    url = "https://www.pearvideo.com/category_6"
    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
      }
    
    #     ,  etree  
    response = requests.get(url=url, headers=headers).text
    tree = etree.HTML(response)
    
    #            
    video_id_list = tree.xpath("//ul[@class='listvideo-list clearfix']/li[@class='categoryem ']//a[@class='vervideo-lilink actplay']/@href")
    video_name_list = tree.xpath("//ul[@class='listvideo-list clearfix']/li[@class='categoryem ']//a/div[@class='vervideo-title']/text()")
    data_list = [{"name": video_name_list[i], "idNum": video_id_list[i][6:]} for i in range(len(video_name_list))]
    
    #             
    if not os.path.exists("./videos"):
      os.mkdir("./videos")
    
    #        
    def down_video(data):
      name = data['name']
      idNum = data['idNum']
    
      #        headers,     Referer     id  
      headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36',
        'Referer': f'https://www.pearvideo.com/video_{idNum}'
      }
      #         url url,   id      id    
      url = f'https://www.pearvideo.com/videoStatus.jsp?contId={idNum}'
    
      #         json    
      response = requests.get(url=url, headers=headers).json()
      video_url = response["videoInfo"]["videos"]["srcUrl"]
    
      #              cont-              
      video_url = video_url.replace(video_url.split("/")[-1].split("-")[0], "cont-" + idNum)
    
      #        
      video = requests.get(url=video_url, headers=headers).content
      with open(f"./videos/{name}.mp4", "wb") as f:
        print(f"       {name} ...")
        f.write(video)
        print(f"   {name}     !")
    
    if __name__ == '__main__':
      #         
      pool = Pool(3)
      pool.map(down_video, data_list)
      pool.close()
      pool.join()
    총결산
    사실 가장 어 려 운 점 은 정확 한 영상 url 을 얻 는 것 이 고 중간 과정 이 비교적 복잡 하 다.이 주 소 를 찾 으 면 홈 페이지 에서 받 은 동 영상 id 를 더 하면 동 영상 을 순조롭게 받 을 수 있다.
    홈 페이지 전체 동 영상 을 가 져 오 려 면 xpath 경 로 를 다시 설정 하면 됩 니 다.
    이상 은 파 이 썬 이 배 를 기어 오 르 는 동 영상의 예시 적 인 상세 한 내용 입 니 다.파 이 썬 이 배 를 기어 오 르 는 동 영상 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!

    좋은 웹페이지 즐겨찾기