最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用python爬取豆瓣前一百電影

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

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

實(shí)現(xiàn)項(xiàng)目我們需要運(yùn)用以下幾個(gè)知識點(diǎn)

一、獲取網(wǎng)頁
1.找網(wǎng)頁規(guī)律;
2.使用 for 循環(huán)語句獲得網(wǎng)站前4頁的網(wǎng)頁鏈接;
3.使用 Network 選項(xiàng)卡查找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 文件。

實(shí)現(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,這說明可以對這個(gè)網(wǎng)頁進(jìn)行爬取。

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

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

(5)代碼思路

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

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

3)想要提取的標(biāo)簽如果具有屬性,可以使用 Tag.find(HTML元素名, HTML屬性名='')來提??;沒有屬性的話,可以在這個(gè)標(biāo)簽附近找到一個(gè)有屬性的標(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)后會得到一個(gè) DictWriter 對象;

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

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

運(yùn)行結(jié)果:

 生成的CSV文件:

總結(jié)

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

相關(guān)文章

  • python實(shí)現(xiàn)按長寬比縮放圖片

    python實(shí)現(xiàn)按長寬比縮放圖片

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)按長寬比縮放圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • np.random.seed() 的使用詳解

    np.random.seed() 的使用詳解

    這篇文章主要介紹了np.random.seed() 的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python安裝官方whl包和tar.gz包的方法(推薦)

    Python安裝官方whl包和tar.gz包的方法(推薦)

    下面小編就為大家?guī)硪黄狿ython安裝官方whl包和tar.gz包的方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • python畫圖常規(guī)設(shè)置方式

    python畫圖常規(guī)設(shè)置方式

    這篇文章主要介紹了python畫圖常規(guī)設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python判斷字符串是否為字母或者數(shù)字(浮點(diǎn)數(shù))的多種方法

    Python判斷字符串是否為字母或者數(shù)字(浮點(diǎn)數(shù))的多種方法

    本文給大家?guī)砣N方法基于Python判斷字符串是否為字母或者數(shù)字(浮點(diǎn)數(shù)),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • python opencv畫局部放大圖實(shí)例教程

    python opencv畫局部放大圖實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于python opencv畫局部放大圖的相關(guān)資料,獲取鼠標(biāo)的單擊相應(yīng)以及鼠標(biāo)的移動信息,進(jìn)行放大功能的實(shí)現(xiàn),需要的朋友可以參考下
    2021-10-10
  • Python button選取本地圖片并顯示的實(shí)例

    Python button選取本地圖片并顯示的實(shí)例

    今天小編就為大家分享一篇Python button選取本地圖片并顯示的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)實(shí)例探究

    Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)實(shí)例探究

    這篇文章主要為大家介紹了Python?Flask-Login構(gòu)建強(qiáng)大的用戶認(rèn)證系統(tǒng)示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Cython處理C字符串的示例詳解

    Cython處理C字符串的示例詳解

    如果你在使用 Cython 加速 Python 時(shí)遇到了瓶頸,但還希望更進(jìn)一步,那么可以考慮將數(shù)據(jù)的類型替換成 C 的類型,所以本文為大家介紹了Cython處理C字符串的方法,希望對大家有所幫助
    2023-01-01
  • python控制臺實(shí)現(xiàn)tab補(bǔ)全和清屏的例子

    python控制臺實(shí)現(xiàn)tab補(bǔ)全和清屏的例子

    今天小編就為大家分享一篇python控制臺實(shí)現(xiàn)tab補(bǔ)全和清屏的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

西安市| 巨野县| 大城县| 新乡县| 定州市| 济南市| 都匀市| 法库县| 大渡口区| 当阳市| 屏东县| 铜山县| 乐安县| 会东县| 修武县| 仙游县| 灵璧县| 吉林市| 宁晋县| 潼南县| 宁德市| 朝阳县| 临泽县| 安仁县| 高州市| 宣城市| 马边| 西藏| 前郭尔| 绵竹市| 沭阳县| 博客| 枝江市| 柏乡县| 舟山市| 洛南县| 乌拉特前旗| 进贤县| 湖南省| 隆安县| 台湾省|