您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么用Python看一看最近有什么剛上映的電影”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
項目目標
獲取貓眼電影的即將上映的電影詳情。
項目準備
軟件:PyCharm
需要的庫:requests、lxml、random、time
插件:Xpath
網(wǎng)站如下:
https://maoyan.com/films?showType=2&offset={}
點擊下一頁的按鈕,觀察到網(wǎng)站的變化分別如下:
https://maoyan.com/films?showType=2&offset=30 https://maoyan.com/films?showType=2&offset=60 https://maoyan.com/films?showType=2&offset=90
點擊下一頁時,頁面每增加一頁offset=()每次增加30,所以可以用{}代替變換的變量,再用for循環(huán)遍歷這網(wǎng)址,實現(xiàn)多個網(wǎng)址請求。
項目實現(xiàn)
1、定義一個class類繼承object,定義init方法繼承self,主函數(shù)main繼承self。導入需要的庫和網(wǎng)址,代碼如下所示。
import requests from lxml import etree import time import random class MaoyanSpider(object): def __init__(self): self.url = "https://maoyan.com/films?showType=2&offset={}" def main(self): pass if __name__ == '__main__': spider = MaoyanSpider() spider.main()
2、隨機產(chǎn)生UserAgent。
for i in range(1, 50): # ua.random,一定要寫在這里,每次請求都會隨機選擇。 self.headers = { 'User-Agent': ua.random, }
3、發(fā)送請求,獲取頁面響應。
def get_page(self, url): # random.choice一定要寫在這里,每次請求都會隨機選擇 res = requests.get(url, headers=self.headers) res.encoding = 'utf-8' html = res.text self.parse_page(html)
4、xpath解析一級頁面數(shù)據(jù),獲取頁面信息。
1)基準xpath節(jié)點對象列表。
# 創(chuàng)建解析對象 parse_html = etree.HTML(html) # 基準xpath節(jié)點對象列表 dd_list = parse_html.xpath('//dl[@class="movie-list"]//dd')
2)依次遍歷每個節(jié)點對象,提取數(shù)據(jù)。
for dd in dd_list: name = dd.xpath('.//div[@class="movie-hover-title"]//span[@class="name noscore"]/text()')[0].strip() star = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][3]/text()')[1].strip() type = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][2]/text()')[1].strip() dowld=dd.xpath('.//div[@class="movie-item-hover"]/a/@href')[0].strip() # print(movie_dict) movie = '''【即將上映】
5、定義movie,保存打印數(shù)據(jù)。
movie = '''【即將上映】 電影名字: %s 主演:%s 類型:%s 詳情鏈接:https://maoyan.com%s ========================================================= ''' % (name, star, type,dowld) print( movie)
6、random.randint()方法,設置時間延時。
time.sleep(random.randint(1, 3))
7、調(diào)用方法,實現(xiàn)功能。
html = self.get_page(url)self.parse_page(html)
效果展示
1、點擊綠色小三角運行輸入起始頁,終止頁。
2、運行程序后,結(jié)果顯示在控制臺。
3、點擊藍色下載鏈接, 網(wǎng)絡查看詳情。
“怎么用Python看一看最近有什么剛上映的電影”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。