[python爬蟲之路day5]:實戰之電影天堂2019精選電影爬取

**前言:**通過本次學習新掌握以下函數用法。
map(lambda x:x+3,5)
.startswith("ads ")
.strip() 除去前後空格
a.format(1)用其中的字符填充a中的{}

代碼如下:

from lxml import etree
import requests
BASEURL="https://www.dytt8.net"
HEADERS={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"}

def get_details_url(url):
    response = requests.get(url, headers=HEADERS)
    text = response.content.decode('gbk','ignore')
    html = etree.HTML(text)
    detail_urls = html.xpath("//table[@class='tbspan']//a/@href")
    detail_urls = map(lambda urlw: BASEURL + urlw, detail_urls)
    return detail_urls
def parse_detail_page(url):
    mie={}
    response=requests.get(url,headers=HEADERS)
    text = response.content.decode('gbk', 'ignore')
    html = etree.HTML(text)
    title=html.xpath("//div[@class='title_all']//font[@color='#07519a']/text()")[0]
    mie["title"] = title
    zoome=html.xpath("//div[@id='Zoom']")[0]
    imgs=zoome.xpath(".//img/@src")
    cover=imgs[0]
    mie["cover"]=cover
    infos=zoome.xpath(".//text()")
    def parse_info(info,role):
        return info.replace(role,"").strip()
    for index,info in enumerate(infos):
        if info.startswith("◎年  代"):
            info=parse_info(info,"◎年  代")
            mie['year']=info
        elif info.startswith("◎產  地"):
            info=parse_info(info,"◎產  地")
            mie['make place'] = info
        elif info.startswith("◎類  別"):
            info=parse_info(info,"◎類  別")
            mie['catagory'] = info
        elif info.startswith("◎豆瓣評分"):
            info=parse_info(info,"◎豆瓣評分")
            mie['豆瓣評分'] = info
        elif info.startswith("◎片  長"):
            info=parse_info(info,"◎片  長")
            mie['片  長'] = info
        elif info.startswith("◎導  演"):
            info = parse_info(info, "◎導  演")
            mie['導  演'] = info
        elif info.startswith("◎主  演"):
            info = parse_info(info, "◎主  演")
            actors=[info]
            for x in range(index+1,len(infos)):
                actor=infos[x].strip()
                if actor.startswith("◎"):
                    break
                actors.append(actor)
            mie["actors"]=actors
        elif info.startswith("◎簡  介"):
            info = parse_info(info, "◎簡  介")
            progfiles = []
            for x in range(index +1,len(infos)):
                progfile=infos[x].strip()
                if progfile.startswith("◎獲獎情況"):
                    break
                progfiles.append(progfile)
            mie["progfile"]=progfiles
    return mie
def spidera():
    headerurl="https://www.dytt8.net/html/gndy/dyzz/list_23_{}.html"
    movies=[]
    for x in range(1,4):
        url=headerurl.format(x)
        detail_urls=get_details_url(url)
        for detail_url in detail_urls:
            move=parse_detail_page(detail_url)
            movies.append(move)

if __name__ == '__main__':
    spidera()

運行結果:
以下爲截取的部分結果:
{‘title’: ‘2019年曆史戰爭《決戰中途島》BD國英雙語雙字’, ‘cover’: ‘https://extraimage.net/images/2020/01/11/c629673a2abc2f2d1f31d21f4c6e4d32.jpg’, ‘year’: ‘2019’, ‘make place’: ‘中國大陸/美國’, ‘catagory’: ‘劇情/歷史/戰爭’, ‘豆瓣評分’: ‘7.8/10 from 87,337 users’, ‘片\u3000\u3000長’: ‘138分鐘’, ‘導\u3000\u3000演’: ‘羅蘭·艾默裏奇 Roland Emmerich’, ‘actors’: [‘艾德·斯克林 Ed Skrein’, ‘帕特里克·威爾森 Patrick Wilson’, ‘伍迪·哈里森 Woody Harrelson’, ‘盧克·伊萬斯 Luke Evans’, ‘丹尼斯·奎德 Dennis Quaid’, ‘曼迪·摩爾 Mandy Moore’, ‘亞歷山大·路德韋格 Alexander Ludwig’, ‘艾倫·艾克哈特 Aaron Eckhart’, ‘達倫·克里斯 Darren Criss’, ‘尼克·喬納斯 Nick Jonas’, ‘盧克·克萊恩坦克 Luke Kleintank’, ‘傑克·韋伯 Jake Weber’, ‘基恩·約翰遜 Keean Johnson’, ‘淺野忠信 Tadanobu Asano’, ‘大衛·休萊特 David Hewlett’, ‘馬克·羅斯頓 Mark Rolston’, ‘佈雷南·布朗 Brennan Brown’, ‘詹姆斯·卡佩內羅 James Carpinello’, ‘馬修·麥考爾 Matthew MacCaull’, ‘格雷格·霍瓦尼西安 Greg Hovanessian’, ‘傑克·曼利 Jake Manley’, ‘傑弗裏·布萊克 Geoffrey Blake’, ‘瑞秋·佩雷爾·佛斯基特 Rachael Perrell Fosket’, ‘卡梅倫·布羅德 Cameron Brodeur’, ‘傑克博·布萊爾 Jacob Blair’, ‘克里斯蒂·布魯克 Christie Brooke’, ‘國村隼 Jun Kunimura’, ‘泰勒·艾略特·伯克 Tyler Elliot Burke’, ‘豐川悅司 Etsushi Toyokawa’, ‘艾梅伯·瓦爾斯 Amber Walls’, ‘莫妮卡·比卡羅娃 Monika Bicarova’, ‘託尼·克里斯托弗 Tony Christopher’, ‘加雷特·佐藤 Garret Sato’, ‘羅伯特·克魯克斯 Robert Crooks’, ‘埃裏克·戴維斯 Eric Davis’, ‘托馬斯·瓦利埃 Thomas Vallieres’, ‘約翰·洛巴託 John Lobato’, ‘迪索·拉莫斯 Diezel Ramos’, ‘Kenny Leu’], ‘progfile’: [‘電影講述的是第二次世界大戰太平洋戰爭重要轉折點——中途島海戰:經此一役,日本海軍受到“降維打擊”,美日海上實力反轉,從而扭轉了整個太平洋戰場的局勢。影片通過參戰士兵和飛行員一個個鮮活的故事,帶領觀衆逐步進入1942年6月初發生在太平洋中途島附近那場令人難以置信的戰爭……’, ‘【下載地址】’, ‘’, ‘磁力鏈點擊 決戰中途島.BD.1080p.國英雙語雙字.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘ftp://ygdy8:[email protected]:4003/陽光電影www.ygdy8.com.決戰中途島.BD.1080p.國英雙語雙字.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’]}, {‘title’: ‘2019年劇情傳記《洛瑞太太和她的兒子》BD中英雙字幕’, ‘cover’: ‘https://extraimage.net/images/2020/02/07/6d05b7c2182b08406f5c067cfecca491.jpg’, ‘year’: ‘2019’, ‘make place’: ‘英國’, ‘catagory’: ‘劇情 / 傳記 / 歷史’, ‘豆瓣評分’: ‘7.6/10 from 290 users’, ‘片\u3000\u3000長’: ‘91分鐘’, ‘導\u3000\u3000演’: ‘Adrian Noble’, ‘actors’: [‘瓦妮莎·雷德格瑞夫 Vanessa Redgrave’, ‘蒂莫西·斯波 Timothy Spall’, ‘史蒂芬·洛德 Stephen Lord’, ‘溫迪·摩根 Wendy Morgan’, ‘邁爾斯·基奧治 Michael Keogh’, ‘Joanne Pearce’, ‘David Schaal’, ‘John Alan Roberts’, ‘Jon Furlong’, ‘Paul Bergquist’, ‘Laurence Mills’, ‘Kíla Lord Cassidy’, ‘Rose Noble’, ‘Jennifer Banks’, ‘Giselle Cullinane’], ‘progfile’: [‘他那咄咄逼人的控制狂母親’, ‘成就了二十世紀英國最偉大的畫家之一’, ‘L.S. 洛瑞是二十世紀英國最偉大的國民畫家之一,獨特的畫風深受英國民衆喜愛。但是他的畫作在早期卻遭藝術評論家嘲笑爲出自兒童之手,因爲他筆下的人物,頭大大,身體細細,就像一根根的火柴棒一樣,被稱爲“火柴男人”。雖然說洛瑞的母親伊莉莎白女士,一生都在阻擾他的藝術事業,但是洛瑞之所以能夠成爲優秀的畫家,卻不得不歸功於他的母親。在他父親去世之後,洛瑞負責照顧臥病在牀的母親,每每等到她入睡了纔在閣樓開始作畫,全心全意,甘之如飴。抑鬱寡歡的伊莉莎白總是叨叨唸著她對兒子的不滿與失望,洛瑞卻終其一生都在追尋著如何讓母親快樂,他的生活與他的畫作都渴望著母親的認同。本片由知名皇家莎士比亞劇場前任總監亞德里安.諾布爾擔任導演,找來坎城影帝提摩西司伯飾演這位偉大的畫家,以及坎城影后凡妮莎蕾格烈芙飾演控制狂的母親。兩人精湛的演技,演活了這對諷刺卻又帶幽默的母子。’, ‘「煙囪林立以及冒著黑煙的天空,火柴男子出現在一成不變的工業景觀裡踽踽獨行。」洛瑞的作品紀錄了後工業化的英國城市景觀,以及人們的疏離,直到現在,仍能引起共鳴。他在晚年被皇家藝術學會及曼徹斯特學院延攬,作品曾以370萬英鎊高價售出。他多次拒絕了英國首相頒發的勳章,並拒絕了勳爵的封號。’, ‘【下載地址】’, ‘’, ‘磁力鏈點擊 洛瑞太太和她的兒子.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘ftp://ygdy8:[email protected]:3002/陽光電影www.ygdy8.com.洛瑞太太和她的兒子.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’]}, {‘title’: ‘2019年劇情傳記《叛徒/黑金叛徒》BD中字’, ‘cover’: ‘https://extraimage.net/images/2020/02/04/aba90630040057fc651a1531272628ed.jpg’, ‘year’: ‘2019’, ‘make place’: ‘意大利,法國,巴西,德國’, ‘catagory’: ‘劇情 / 傳記 / 犯罪’, ‘豆瓣評分’: ‘7.3/10 from 3,820 users’, ‘片\u3000\u3000長’: ‘135分鐘’, ‘導\u3000\u3000演’: ‘馬可·貝洛基奧 Marco Bellocchio’, ‘actors’: [‘皮耶爾弗蘭切斯科·法維諾 Pierfrancesco Favino’, ‘馬麗婭·費爾南達·康基多 Maria Fernanda Cândido’, ‘路易吉·洛·卡肖 Luigi Lo Cascio’, ‘福斯托·魯索·阿萊西 Fausto Russo Alesi’, ‘尼諾·波爾齊奧 Nino Porzio’, ‘Alessio Praticò’, ‘Gabriele Arena’, ‘Fabrizio Ferracane’, ‘Jacopo Garfagnoli’, ‘Patrick Simons’, ‘Marco Gambino’, ‘Calì Nicola’, ‘Goffredo Maria Bruno’, ‘Massimiliano Ubaldi’, ‘Marilina Marino’, ‘Nunzia Lo Presti’], ‘progfile’: [‘本片根據意大利真實事件改編而成。上世紀80年代初期,黑幫首腦多瑪索·布西達從意大利移居巴西,然而遠在意大利的自己的哥哥與孩子卻相繼被黑幫團伙殺害。爲了懲治兇手,他開始與意大利警方合作,在兩方的不斷努力下,多瑪索·布西達不僅抓住了殺害自己親人的幕後黑手,並將意大利盤根錯節的黑幫團伙連根拔起……’]}, {‘title’: ‘2019年驚悚動作《格蘭德島》BD中英雙字幕’, ‘cover’: ‘https://extraimage.net/images/2020/01/29/ba8f6fdb69026c2911060c0a1608cb4d.jpg’, ‘year’: ‘2019’, ‘make place’: ‘美國’, ‘catagory’: ‘動作 / 驚悚’, ‘豆瓣評分’: ‘4.4/10 from 136 users’, ‘片\u3000\u3000長’: ‘97分鐘’, ‘導\u3000\u3000演’: ‘斯蒂芬·S·坎帕內利 Stephen S. Campanelli’, ‘actors’: [‘尼古拉斯·凱奇 Nicolas Cage’, ‘凱爾希·格蘭莫 Kelsey Grammer’, ‘祖蕾·亨奧 Zulay Henao’, ‘盧克·本沃德 Luke Benward’, ‘卡迪·斯特瑞蘭德 KaDee Strickland’, ‘艾米麗·瑪麗·帕爾默 Emily Marie Palmer’, ‘奧利弗·特雷韋納 Oliver Trevena’, ‘比阿特麗絲·埃爾南德斯 Beatrice Hernandez’, ‘Isabella Grace Roark’, ‘Haley Milsap’], ‘progfile’: [‘一位年輕父親遭人誣陷爲謀殺案罪犯,爲了證明自己的清白,他必須要在自己經歷過的一系列恐怖而離奇的事件中尋找線索和答案。’, ‘本片由曾經執導過《絕命盜竊》並多次與克林特·伊斯特伍德合作的導演Stephen S. Campanelli和新晉導演Iver William Jallah聯合執導,尼古拉斯·凱奇宣佈加盟該片。’, ‘【下載地址】’, ‘’, ‘磁力鏈點擊 格蘭德島.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘ftp://ygdy8:[email protected]:6006/陽光電影www.ygdy8.com.格蘭德島.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’]}, {‘title’: ‘2019年驚悚《葛蕾絲的墜落》BD中英雙字幕’, ‘cover’: ‘https://lookimg.com/images/2020/02/06/aQjFj.jpg’, ‘year’: ‘2020’, ‘make place’: ‘美國’, ‘catagory’: ‘驚悚’, ‘豆瓣評分’: ‘6.3/10 from 841 users’, ‘片\u3000\u3000長’: ‘120分鐘’, ‘導\u3000\u3000演’: ‘泰勒·派瑞 Tyler Perry’, ‘actors’: [‘亞德里安·帕斯達 Adrian Pasdar’, ‘泰勒·派瑞 Tyler Perry’, ‘西西莉·泰森 Cicely Tyson’, ‘菲利西亞·拉斯海德 Phylicia Rashad’, ‘布萊莎·韋伯 Bresha Webb’, ‘麥卡德·布魯克斯 Mehcad Brooks’, ‘桑德拉·埃利斯·拉弗蒂 Sandra Ellis Lafferty’, ‘內森·安德森 Nathan Anderson’, ‘邁克爾·羅斯 Michael Rose’, ‘Crystal Fox’, ‘Walter Fauntleroy’, ‘James William Ballard’, ‘Matthew Law’, ‘James Healy Jr.’, ‘Frances Mitchell’], ‘progfile’: [‘影片講述葛蕾絲·華特斯經歷前夫出軌的情傷後,終於靠着新戀情重新站起。誰知美好表象下藏有無數祕密,葛蕾絲在發現真相之後,身心受創的她開始反擊。’, ‘【下載地址】’, ‘’, ‘磁力鏈點擊 葛蕾絲的墜落.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘ftp://ygdy8:[email protected]:4002/陽光電影www.ygdy8.com.葛蕾絲的墜落.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’]}, {‘title’: ‘2019年驚悚動作《21座橋/暴走曼哈頓》BD中英雙字幕’, ‘cover’: ‘https://lookimg.com/images/2020/02/06/aQtKo.jpg’, ‘year’: ‘2019’, ‘make place’: ‘美國’, ‘catagory’: ‘動作 / 驚悚 / 犯罪’, ‘豆瓣評分’: ‘6.5/10 from 1,158 users’, ‘片\u3000\u3000長’: ‘99分鐘’, ‘導\u3000\u3000演’: ‘布萊恩·柯克 Brian Kirk’, ‘actors’: [‘查德維克·博斯曼 Chadwick Boseman’, ‘西耶娜·米勒 Sienna Miller’, ‘泰勒·克奇 Taylor Kitsch’, ‘J·K·西蒙斯 J.K. Simmons’, ‘凱斯·大衛 Keith David’, ‘史蒂芬·詹姆士 Stephan James’, ‘凱蒂·麥克萊倫 Katie McClellan’, ‘莎伊娜·瑞恩 Shayna Ryan’, ‘加里·卡爾 Gary Carr’, ‘維多利亞·卡塔赫納 Victoria Cartagena’, ‘戴爾·帕文斯基 Dale Pavinski’, ‘託比·海明威 Toby Hemingway’, ‘克里斯蒂安·艾賽亞 Kristian Isaiah’, ‘路易斯·坎瑟米 Louis Cancelmi’, ‘喬恩·道格拉斯·雷尼 Jon Douglas Rainey’, ‘傑拉德·瓦德 Jared Ward’, ‘莫洛克·奧馬裏 Morocco Omari’, ‘蘇澤特·古恩 Suzette Gunn’, ‘邁克爾·J·克雷米 Michael J. Kraycik’, ‘邁克爾·J·萊昂斯 Michael J. Lyons’], ‘progfile’: [‘影片風格據稱類似《局內人》和《亡命天涯》,博斯曼飾一個蒙羞的紐約警局警探,因爲被捲入一場全城範圍的追捕某警察殺手的行動,獲得了贖罪機會——他發現了一起巨大的陰謀:自己的警察同事可能跟一個犯罪帝國有關聯。他必須決定到底要追捕誰,而誰其實又在追捕他。在這起行動中,曼哈頓在歷史上第一次全境封鎖,島上與外界聯繫的17座橋全部禁止進出。’, ‘【下載地址】’, ‘’, ‘磁力鏈點擊 21座橋.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘ftp://ygdy8:[email protected]:7053/陽光電影www.ygdy8.com.21座橋.BD.1080p.中英雙字幕.mkv’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’]},

發佈了7 篇原創文章 · 獲贊 3 · 訪問量 1755
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章