利用request和re抓取貓眼電影排行
阿新 • • 發佈:2019-04-24
offset requests url oar 復習 .com one text mozilla
import requests import re import time def get_one_page(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0' # User-Agent可以在網上搜一下,很多 } response = requests.get(url, headers=headers) if response.status_code == 200: return response.text return None def main(): for page in range(0,10): url = 'https://maoyan.com/board/4' if page > 0: url += '?offset='+str(page*10) html = get_one_page(url) # 抓取 data = parse_one_page(html) # 解析 time.sleep(1) # 限制抓取速度,避免觸發反爬 for i in data: # 輸出 print(i) def parse_one_page(html): pattern = re.compile( '<dd>.*?board-index.*?>(\d*)</i>'+ # 電影id '.*?data-src="(.*?)"'+ # 圖片鏈接 '.*?title="(.*?)"'+ # 電影名稱 '.*?<p class="star">.*?主演:(.*?)\n.*?</p>' # 主演 , re.S) # 【復習】re.S修飾符:使.匹配包括換行符在內的所有字符 items = re.findall(pattern, html) for item in items: yield { 'index':item[0], 'image':item[1], 'title':item[2], 'actor':item[3] } main()
輸出:
{'index': '1', 'image': 'https://p1.meituan.net/movie/[email protected]_220h_1e_1c', 'title': '霸王別姬', 'actor': '張國榮,張豐毅,鞏俐'} {'index': '2', 'image': 'https://p0.meituan.net/movie/[email protected]_220h_1e_1c', 'title': '肖申克的救贖', 'actor': '蒂姆·羅賓斯,摩根·弗裏曼,鮑勃·岡頓'} {'index': '3', 'image': 'https://p0.meituan.net/movie/[email protected]_220h_1e_1c', 'title': '羅馬假日', 'actor': '格利高裏·派克,奧黛麗·赫本,埃迪·艾伯特'} ... {'index': '99', 'image': 'https://p0.meituan.net/movie/[email protected]_220h_1e_1c', 'title': '阿飛正傳', 'actor': '張國榮,張曼玉,劉德華'} {'index': '100', 'image': 'https://p0.meituan.net/movie/[email protected]_220h_1e_1c', 'title': '龍貓', 'actor': '秦嵐,糸井重裏,島本須美'}
利用request和re抓取貓眼電影排行