正则抓取猫眼TOP100电影的海报
生活随笔
收集整理的這篇文章主要介紹了
正则抓取猫眼TOP100电影的海报
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1,打開貓眼電影TOP100的榜單網址:
http://maoyan.com/board/4
2,Google Chrome 瀏覽器中按F12,打開開發者面板,使用Network:
此時什么也沒有。
3,回到榜單的原始頁面,按下F5進行刷新,此時再看開發者面板中的Network中會有信息流:
通過查找看到每條電影的相關信息均在一個<dd></dd>中,上圖中標明了電影海報超鏈接的位置和電影名稱的位置。
可以用正則表達式提取出相關的信息。
4,電影Top100總共有10頁,每頁10條,每頁的網址有規律:
第1,2,3,...10頁的網址 http://maoyan.com/board/4?offset=0 http://maoyan.com/board/4?offset=10 http://maoyan.com/board/4?offset=20 ... http://maoyan.com/board/4?offset=90offset=后面的數字0、10、20、。。。90分別對應第1,2,3,。。。10頁。
因此,外層循環控制頁數,內層循環控制每頁中電影的網址,可完成對每個電影的海報進行下載。
5,代碼:
# 貓眼電影的TOP100電影海報下載 # 第1,2,3,...10頁的網址 # http://maoyan.com/board/4?offset=0 # http://maoyan.com/board/4?offset=10 # http://maoyan.com/board/4?offset=20 # ... # http://maoyan.com/board/4?offset=90 import requests import re import random import time import osdef doanload_onepage(offset):url = 'http://maoyan.com/board/4?offset=' + str(offset)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}response = requests.get(url, headers=headers)html = response.text # print(html)pattern = re.compile('<dd>.*?data-src="(.*?)".*?"name"><a.*?>(.*?)</a>.*?</dd>', re.S) # 提取電影的海報鏈接和名稱movies = re.findall(pattern, html)print(movies)print(type(movies))file_path = r'F:\MaoYaoTop100Movies'if not os.path.exists(file_path):os.makedirs(file_path) # 如果存儲路徑不存在,則進行創建os.chdir(file_path) # 改變存儲路徑到F:\MaoYaoTop100Moviesfor item in movies:href = item[0]name = item[1]print(href)print(name)response = requests.get(url=href, headers=headers)content = response.contentpicture_name = name + '.jpg'with open(picture_name, 'wb') as f:f.write(content)time.sleep(random.random() * 3)print('第{}頁下載完畢.'.format(int(offset/10+1)))time.sleep(random.random() * 9)if __name__ == '__main__':pages = 10 # 總共10頁for i in range(pages):doanload_onepage(offset=i * 10)print('====Top100電影海報下載完畢====')過程:
下載的目錄文件:
至此,利用正則表達式下載貓眼Top100的電影海報成功完成。
參考:
https://github.com/Python3WebSpider/MaoYan
總結
以上是生活随笔為你收集整理的正则抓取猫眼TOP100电影的海报的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于KMPlayer播放器不显示字幕的解
- 下一篇: MathType+Originlab的有