自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Python網(wǎng)絡(luò)爬蟲來(lái)看看最近電影院都有哪些上映的電影

開發(fā) 后端
貓眼電影是淘寶聯(lián)合打造電影分類最全的電影的平臺(tái),能夠第一時(shí)間告知用戶,最新的電影上線時(shí)間。今天教大家獲取貓眼電影的即將上映的電影詳情。

1 前言

貓眼電影是淘寶聯(lián)合打造電影分類最全的電影的平臺(tái),能夠第一時(shí)間告知用戶,最新的電影上線時(shí)間。今天教大家獲取貓眼電影的即將上映的電影詳情。

2 項(xiàng)目目標(biāo)

獲取貓眼電影的即將上映的電影詳情。

3 項(xiàng)目準(zhǔn)備

軟件:PyCharm

需要的庫(kù):requests、lxml、random、time

插件:Xpath

網(wǎng)站如下: 

  1. https://maoyan.com/films?showType=2&offset={} 

點(diǎn)擊下一頁(yè)的按鈕,觀察到網(wǎng)站的變化分別如下: 

  1. https://maoyan.com/films?showType=2&offset=30  
  2. https://maoyan.com/films?showType=2&offset=60  
  3. https://maoyan.com/films?showType=2&offset=90 

點(diǎn)擊下一頁(yè)時(shí),頁(yè)面每增加一頁(yè)offset=()每次增加30,所以可以用{}代替變換的變量,再用for循環(huán)遍歷這網(wǎng)址,實(shí)現(xiàn)多個(gè)網(wǎng)址請(qǐng)求。

4 項(xiàng)目實(shí)現(xiàn)

1、定義一個(gè)class類繼承object,定義init方法繼承self,主函數(shù)main繼承self。導(dǎo)入需要的庫(kù)和網(wǎng)址,代碼如下所示。 

  1. import requests  
  2. from lxml import etree  
  3. import time  
  4. import random  
  5. class MaoyanSpider(object):  
  6.     def __init__(self):  
  7.       self.url = "https://maoyan.com/films?showType=2&offset={}"  
  8.     def main(self):  
  9.         pass  
  10. if __name__ == '__main__':  
  11.     spider = MaoyanSpider()  
  12.     spider.main() 

2、隨機(jī)產(chǎn)生UserAgent。 

  1. for i in range(1, 50):  
  2.    # ua.random,一定要寫在這里,每次請(qǐng)求都會(huì)隨機(jī)選擇。  
  3.        self.headers = { 
  4.             'User-Agent': ua.random,  
  5.        } 

3、發(fā)送請(qǐng)求,獲取頁(yè)面響應(yīng)。 

  1. def get_page(self, url):  
  2.   # random.choice一定要寫在這里,每次請(qǐng)求都會(huì)隨機(jī)選擇  
  3.   res = requests.get(url, headers=self.headers)  
  4.   res.encoding = 'utf-8' 
  5.   html = res.text  
  6.   self.parse_page(html) 

4、xpath解析一級(jí)頁(yè)面數(shù)據(jù),獲取頁(yè)面信息。

1)基準(zhǔn)xpath節(jié)點(diǎn)對(duì)象列表。 

  1. #  創(chuàng)建解析對(duì)象  
  2. parse_html = etree.HTML(html)  
  3. # 基準(zhǔn)xpath節(jié)點(diǎn)對(duì)象列表  
  4. dd_list = parse_html.xpath('//dl[@class="movie-list"]//dd') 

2)依次遍歷每個(gè)節(jié)點(diǎn)對(duì)象,提取數(shù)據(jù)。 

  1. for dd in dd_list:  
  2.    name = dd.xpath('.//div[@class="movie-hover-title"]//span[@class="name noscore"]/text()')[0].strip()  
  3.    star = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][3]/text()')[1].strip()  
  4.    type = dd.xpath('.//div[@class="movie-hover-info"]//div[@class="movie-hover-title"][2]/text()')[1].strip()  
  5.    dowld=dd.xpath('.//div[@class="movie-item-hover"]/a/@href')[0].strip()  
  6.    # print(movie_dict)  
  7.    movie = '''【即將上映】 

5、定義movie,保存打印數(shù)據(jù)。 

  1.  movie = '''【即將上映】         
  2.  電影名字: %s  
  3. 主演:%s  
  4. 類型:%s  
  5. 詳情鏈接:https://maoyan.com%s  
  6. =========================================================  
  7.                                    ''' % (name, star, type,dowld)  
  8. print( movie) 

6、random.randint()方法,設(shè)置時(shí)間延時(shí)。 

  1. time.sleep(random.randint(1, 3)) 

7、調(diào)用方法,實(shí)現(xiàn)功能。 

  1. html = self.get_page(url)  
  2. self.parse_page(html) 

5 效果展示

1、點(diǎn)擊綠色小三角運(yùn)行輸入起始頁(yè),終止頁(yè)。

2、運(yùn)行程序后,結(jié)果顯示在控制臺(tái),如下圖所示。

3、點(diǎn)擊藍(lán)色下載鏈接, 網(wǎng)絡(luò)查看詳情。

6 小結(jié)

1、不建議抓取太多數(shù)據(jù),容易對(duì)服務(wù)器造成負(fù)載,淺嘗輒止即可。

2、本文基于Python網(wǎng)絡(luò)爬蟲,利用爬蟲庫(kù),實(shí)現(xiàn)爬取貓眼電影。

3、歡迎大家積極嘗試,有時(shí)候看到別人實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是到自己動(dòng)手實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。

4、貓眼電影代碼鏈接:,https://github.com/cassieeric/python_crawler/tree/master/MaoyanMovie,覺得不錯(cuò),記得給個(gè)star噢。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Python編程
相關(guān)推薦

2015-03-11 11:07:52

無(wú)線網(wǎng)絡(luò)首都電影院信銳技術(shù)

2016-12-06 15:54:27

2011-06-06 12:18:27

臺(tái)式機(jī)評(píng)測(cè)

2011-12-20 14:49:21

投影儀推薦

2011-07-18 22:03:59

投影機(jī)用戶體驗(yàn)

2012-02-03 16:48:39

投影儀推薦

2021-01-06 17:45:01

VRARVR影院

2011-07-14 22:43:33

2024-05-24 08:35:00

Angular 18版本更新

2012-01-09 19:35:33

臺(tái)式機(jī)用戶體驗(yàn)

2018-01-16 18:43:18

爬蟲工具電影天堂

2023-10-20 10:11:00

Nuxt 3.8前端

2018-12-05 13:59:45

電影分析爬蟲

2009-03-05 10:54:33

2013-04-03 14:25:36

網(wǎng)易郵箱

2011-04-28 12:53:29

3D眼鏡3D家庭影院

2017-08-09 09:19:30

2023-12-08 11:22:31

IT首席轉(zhuǎn)型官轉(zhuǎn)型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)