亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用python爬取豆瓣前一百電影

 更新時間:2022年01月17日 09:57:56   作者:mez_Blog  
大家好,本篇文章主要講的是用python爬取豆瓣前一百電影,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下

網(wǎng)站爬取的流程圖:

實現(xiàn)項目我們需要運用以下幾個知識點

一、獲取網(wǎng)頁
1.找網(wǎng)頁規(guī)律;
2.使用 for 循環(huán)語句獲得網(wǎng)站前4頁的網(wǎng)頁鏈接;
3.使用 Network 選項卡查找Headers信息;
4.使用 requests.get() 函數(shù)帶著 Headers 請求網(wǎng)頁。

二、解析網(wǎng)頁
1.使用 BeautifulSoup 解析網(wǎng)頁;
2.使用 BeautifulSoup 對象調(diào)用 find_all() 方法定位包含單部電影全部信息的標(biāo)簽;
3.使用 Tag.text 提取序號、電影名、評分、推薦語;
4.使用 Tag['屬性名'] 提取電影詳情鏈接。

三、存儲數(shù)據(jù)
1.使用 with open() as … 創(chuàng)建要寫入內(nèi)容的 csv 文件;
2.使用 csv.DictWriter() 將文件對象轉(zhuǎn)換為 DictWriter 對象;
3.參數(shù) fieldnames 用來設(shè)置 csv 文件的表頭;
4.使用 writeheader() 寫入表頭;
5.使用 writerows() 將內(nèi)容寫入 csv 文件。

實現(xiàn)代碼:

import csvimport requestsfrom bs4 import BeautifulSoup# 設(shè)置列表,用以存儲每部電影的信息data_list = []# 設(shè)置請求頭headers = {    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'}# 使用 for 循環(huán)遍歷取值范圍為 0~3 的數(shù)據(jù)for page_number in range(4):    # 設(shè)置要請求的網(wǎng)頁鏈接    url = 'https://movie.douban.com/top250?start={}&filter='.format(page_number * 25)    # 請求網(wǎng)頁    movies_list_res = requests.get(url, headers=headers)    # 解析請求到的網(wǎng)頁內(nèi)容    bs = BeautifulSoup(movies_list_res.text, 'html.parser')    # 搜索網(wǎng)頁中所有包含單部電影全部信息的 Tag    movies_list = bs.find_all('div', class_='item')    # 使用 for 循環(huán)遍歷搜索結(jié)果    for movie in movies_list:        # 提取電影的序號        movie_num = movie.find('em').text        # 提取電影名        movie_name = movie.find('span').text        # 提取電影的評分        movie_score = movie.find("span",class_='rating_num').text        # 提取電影的推薦語        movie_instruction = movie.find("span",class_='inq').text        # 提取電影的鏈接        movie_link = movie.find('a')['href']        # 將信息添加到字典中        movie_dict = {            '序號': movie_num,            '電影名': movie_name,            '評分': movie_score,            '推薦語': movie_instruction,            '鏈接': movie_link        }        # 打印電影的信息        print(movie_dict)        # 存儲每部電影的信息        data_list.append(movie_dict)# 新建 csv 文件,用以存儲電影信息with open('movies.csv', 'w', encoding='utf-8-sig') as f:    # 將文件對象轉(zhuǎn)換成 DictWriter 對象    f_csv = csv.DictWriter(f, fieldnames=['序號', '電影名', '評分', '推薦語', '鏈接'])    # 寫入表頭與數(shù)據(jù)    f_csv.writeheader()    f_csv.writerows(data_list)

代碼分析:

(1)通過觀察網(wǎng)站一頁的電影數(shù),可以發(fā)現(xiàn)一頁只有 25 部電影的信息。

也就是說我們需要爬取網(wǎng)站前4頁(100 = 25*4)的電影信息。

這里我們使用了遍歷,爬取前四頁的數(shù)據(jù)。

(2)通過快捷鍵打開網(wǎng)頁的開發(fā)者工具(Windows 用戶可以在瀏覽器頁面下按 Ctrl + Shift + I 鍵或者直接F12喚出瀏覽器開發(fā)者工具,Mac 用戶的快捷鍵為 command + option + I)。

接著使用開發(fā)者工具中的指針工具,大致查看一下前兩部電影中,需爬取的信息所在位置,觀察一下其中是否有什么規(guī)律。

可以發(fā)現(xiàn)第一部電影里序號、電影名、評分、推薦語以及詳情鏈接在class屬性值為"item"的標(biāo)簽里。

(3)豆瓣電影 Top250 的 Robots 協(xié)議

 并沒有看到Disallow: /Top250,這說明可以對這個網(wǎng)頁進(jìn)行爬取。

(4)在互聯(lián)網(wǎng)世界中,網(wǎng)絡(luò)請求會將瀏覽器信息儲存在請求頭(Request Header)當(dāng)中。

只要我們將瀏覽器信息復(fù)制下來,在爬蟲程序只要在發(fā)起請求時,設(shè)置好與請求頭對應(yīng)的參數(shù),即可成功偽裝成瀏覽器。

(5)代碼思路

1)熟練地使用開發(fā)者工具的指針工具,可以很方便地幫助我們定位數(shù)據(jù)。

2)用指針工具定位到各個數(shù)據(jù)所在位置后,查看它們的規(guī)律。

3)想要提取的標(biāo)簽如果具有屬性,可以使用 Tag.find(HTML元素名, HTML屬性名='')來提?。粵]有屬性的話,可以在這個標(biāo)簽附近找到一個有屬性的標(biāo)簽,然后再進(jìn)行 find() 提取。

通過上述步驟將信息爬取下來后,就走到我們爬蟲的最后一步——存儲數(shù)據(jù)。

(6)存儲數(shù)據(jù)

1)調(diào)用 csv 模塊中類 DictWriter 的語法為:csv.DictWriter(f, fieldnames)。語法中的參數(shù) f 是 open() 函數(shù)打開的文件對象;參數(shù) fieldnames 用來設(shè)置文件的表頭;

2)執(zhí)行csv.DictWriter(f, fieldnames)后會得到一個 DictWriter 對象;

3)得到的 DictWriter 對象可以調(diào)用 writeheader() 方法,將 fieldnames 寫入 csv 的第一行;

4)最后,調(diào)用 writerows() 方法將多個字典寫進(jìn) csv 文件中。

運行結(jié)果:

 生成的CSV文件:

總結(jié)

到此這篇關(guān)于用python爬取豆瓣前一百電影的文章就介紹到這了,更多相關(guān)python爬取豆瓣電影內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于CUDA out of memory的解決方案

    關(guān)于CUDA out of memory的解決方案

    這篇文章主要介紹了關(guān)于CUDA out of memory的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Hadoop中的Python框架的使用指南

    Hadoop中的Python框架的使用指南

    這篇文章主要介紹了Hadoop中的Python框架的使用指南,Hadoop一般使用復(fù)雜的Java操作,但通過該框架使得Python腳本操作Hadoop成為了可能,需要的朋友可以參考下
    2015-04-04
  • Python工程師面試必備25條知識點

    Python工程師面試必備25條知識點

    這篇文章主要為大家詳細(xì)介紹了Python工程師面試必備25條知識點,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python程序暫停的正常處理方法

    Python程序暫停的正常處理方法

    這篇文章主要介紹了Python程序暫停的實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • numba提升python運行速度的實例方法

    numba提升python運行速度的實例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于numba提升python運行速度的實例方法,有興趣的朋友們可以參考下。
    2021-01-01
  • python 畫出使用分類器得到的決策邊界

    python 畫出使用分類器得到的決策邊界

    這篇文章主要介紹了python 畫出使用分類器得到的決策邊界,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python使用Matplotlib畫餅圖

    python使用Matplotlib畫餅圖

    這篇文章主要介紹了python使用Matplotlib畫餅圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法

    詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法

    這篇文章主要介紹了詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 詳解python中@的用法

    詳解python中@的用法

    這篇文章主要介紹了python中@的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python執(zhí)行遺傳編程gplearn庫使用實例探究

    Python執(zhí)行遺傳編程gplearn庫使用實例探究

    這篇文章主要為大家介紹了Python執(zhí)行遺傳編程gplearn庫使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評論