고양이 눈 잡 이 영화 순위

4235 단어 인터넷 파충류
글 목록
  • 개인 홈 페이지:https://joeyos.github.io
  • 캣 츠 아이 영화 차 트 [정규 표현 식]
  • 개인 홈 페이지:https://joeyos.github.io

  • 개인 홈 페이지:https://joeyos.github.io
    고양이 눈 잡 이 영화 순위 [정규 표현 식]
    먼저 고양이 눈 페이지 를 캡 처 하고 정규 표현 식 으로 문자열 을 캡 처 하여 100 개의 영화 정 보 를 얻 습 니 다.
  • 1 - 10 링크:https://maoyan.com/board/4
  • 11 - 20 링크:https://maoyan.com/board/4?offset=10
  • 21 - 30 링크:https://maoyan.com/board/4?offset=20
  • import requests
    
    def get_page(url):
        headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
        }
        response = requests.get(url,headers=headers)
        if response.status_code==200:
            return response.text
        return None
    
    def main():
        url='https://maoyan.com/board/4'
        html=get_page(url)
        print(html)
    
    main()
    

    이상 은 첫 페이지 의 웹 페이지 소스 코드 를 가 져 왔 습 니 다. 다음은 정규 추출 을 진행 하 겠 습 니 다. [Network 를 통 해 소스 코드 보기]:
  • 순위 정 보 를 얻 고 dd 노드 에서 class 는 board - index 의 i 노드 입 니 다.
  • .*?board-index.*>(.*?)
  • 이미지 링크 추출, img 노드 의 data - src 속성:
  • .*?board-index.*?>(.*?).*?data-src="(.*?)"
  • 영화 이름 을 추출 하고 p 노드 의 class 는 name 의 a 노드 입 니 다.
  • .*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?)
  • 주연 배우 추출, 시간, 평 점 등:
  • .*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?).*?releasetime.*?>(.*?).*?integer.*?>(.*?).*?fraction.*?>(.*?).*?

    영화 정보 100 개 추출:
    import requests
    import re
    import json
    import time
    
    def get_page(url):
        headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
        }
        response = requests.get(url,headers=headers)
        if response.status_code==200:
            return response.text
        return None
    def parse_page(html):
        pattern = re.compile(
        '
    .*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?).*?releasetime.*?>(.*?).*?integer.*?>(.*?).*?fraction.*?>(.*?).*?
    ', re.S) items = re.findall(pattern,html) # , for it in items: yield { 'index':it[0], 'image':it[1], 'title':it[2].strip(),# 'actor':it[3].strip()[3:] if len(it[3])>3 else '', 'data':it[4].strip()[5:] if len(it[4])>5 else '', 'score':it[5].strip() + it[6].strip() } def write_file(content): with open('result.txt','a',encoding='utf-8') as f: f.write(json.dumps(content,ensure_ascii=False)+'
    ') def main(offset): url='https://maoyan.com/board/4?offset='+str(offset) html=get_page(url) for item in parse_page(html): print(item) write_file(item) if __name__=='__main__': for i in range(10): main(offset=i*10) #time.sleep(1)

    실행 끝 은 다음 과 같 습 니 다.
    {'index': '1', 'image': 'https://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c', 'title': '    ', 'actor': '   ,   ,  ', 'data': '1993-01-01', 'score': '9.5'}
    {'index': '2', 'image': 'https://p0.meituan.net/movie/283292171619cdfd5b240c8fd093f1eb255670.jpg@160w_220h_1e_1c', 'title': '      ', 'actor': '  ·   ,  ·   ,  ·  ', 'data': '1994-10-14(  )', 'score': '9.5'}
    {'index': '3', 'image': 'https://p0.meituan.net/movie/289f98ceaa8a0ae737d3dc01cd05ab052213631.jpg@160w_220h_1e_1c', 'title': '    ', 'actor': '    ·  ,   ·  ,  ·   ', 'data': '1953-09-02(  )', 'score': '9.1'}
    

    개인 홈 페이지:https://joeyos.github.io

    좋은 웹페이지 즐겨찾기