1. 程式人生 > >Python開發簡單爬蟲之靜態網頁抓取篇:爬取“豆瓣電影 Top 250”電影數據

Python開發簡單爬蟲之靜態網頁抓取篇:爬取“豆瓣電影 Top 250”電影數據

模塊 歲月 python開發 IE 女人 bubuko status 公司 使用

目標:爬取豆瓣電影TOP250的所有電影名稱,網址為:https://movie.douban.com/top250

1)確定目標網站的請求頭:


打開目標網站,在網頁空白處點擊鼠標右鍵,選擇“檢查”。(小編使用的是谷歌瀏覽器)。

點擊“network”,在彈出頁面若長時間沒有數據顯示,則試一下F5刷新。

技術分享圖片

可以得到目標網頁中Host和User-Agent兩項。

2)找到爬取目標數據(即電影名稱)在頁面中的位置


右鍵“檢查”,選擇“Elements”。

或者直接找到一個電影名稱,比如《肖申克的救贖》,對它右鍵,選擇“檢查”。

技術分享圖片

3)相關代碼:


import requests
from
bs4 import BeautifulSoup def get_movies(): headers={ user-agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36, Host:movie.douban.com } #定義爬取目標網頁的請求頭,務必和我們前面通過‘檢查’到的請求頭一致 movie_list=[] for i in
range(0,10): #目標所包含的250項數據分布在10頁之中 link=https://movie.douban.com/top250?start=+str(i*25) #定義每頁的網址 r=requests.get(link,headers=headers,timeout=10) #構建每頁中的抓取請求request print (str(i+1),頁碼響應狀態碼:,r.status_code) soup=BeautifulSoup(r.text,lxml) #使用BeautifulSoup模塊對抓取到的網頁內容進行解析
div_list=soup.find_all(div,class_=hd) #將得到的目標電影數據所在的div存儲到list中 for each in div_list: movie=each.a.span.text.strip() #獲取精確的目標電影數據(即電影名字) movie_list.append(movie) return movie_list movies=get_movies() print(movies)

輸出:

1 頁碼響應狀態碼: 200
2 頁碼響應狀態碼: 200
3 頁碼響應狀態碼: 200
4 頁碼響應狀態碼: 200
5 頁碼響應狀態碼: 200
6 頁碼響應狀態碼: 200
7 頁碼響應狀態碼: 200
8 頁碼響應狀態碼: 200
9 頁碼響應狀態碼: 200
10 頁碼響應狀態碼: 200
[肖申克的救贖, 霸王別姬, 這個殺手不太冷, 阿甘正傳, 美麗人生, 千與千尋, 泰坦尼克號, 辛德勒的名單, 盜夢空間, 機器人總動員, 海上鋼琴師, 三傻大鬧寶萊塢, 忠犬八公的故事, 放牛班的春天, 大話西遊之大聖娶親, 楚門的世界, 龍貓, 教父, 熔爐, 星際穿越, 亂世佳人, 觸不可及, 無間道, 當幸福來敲門, 天堂電影院, 怦然心動, 十二怒漢, 搏擊俱樂部, 少年派的奇幻漂流, 鬼子來了, 蝙蝠俠:黑暗騎士, 指環王3:王者無敵, 活著, 天空之城, 瘋狂動物城, 羅馬假日, 大話西遊之月光寶盒, 飛屋環遊記, 竊聽風暴, 兩桿大煙槍, 飛越瘋人院, 控方證人, 聞香識女人, 哈爾的移動城堡, 海豚灣, V字仇殺隊, 辯護人, 死亡詩社, 教父2, 美麗心靈, 指環王2:雙塔奇兵, 指環王1:魔戒再現, 情書, 飲食男女, 摔跤吧!爸爸, 美國往事, 獅子王, 鋼琴家, 天使愛美麗, 七宗罪, 素媛, 被嫌棄的松子的一生, 小鞋子, 致命魔術, 看不見的客人, 音樂之聲, 勇敢的心, 剪刀手愛德華, 本傑明·巴頓奇事, 低俗小說, 西西裏的美麗傳說, 拯救大兵瑞恩, 黑客帝國, 沈默的羔羊, 入殮師, 蝴蝶效應, 讓子彈飛, 瑪麗和馬克思, 春光乍泄, 大鬧天宮, 心靈捕手, 陽光燦爛的日子, 幽靈公主, 末代皇帝, 第六感, 重慶森林, 禁閉島, 大魚, 布達佩斯大飯店, 狩獵, 哈利·波特與魔法石, 射雕英雄傳之東成西就, 致命ID, 甜蜜蜜, 斷背山, 一一, 告白, 貓鼠遊戲, 陽光姐妹淘, 加勒比海盜, 上帝之城, 摩登時代, 穿條紋睡衣的男孩, 阿凡達, 愛在黎明破曉前, 消失的愛人, 風之谷, 愛在日落黃昏時, 側耳傾聽, 倩女幽魂, 紅辣椒, 超脫, 恐怖直播, 螢火蟲之墓, 馴龍高手, 幸福終點站, 菊次郎的夏天, 小森林 夏秋篇, 喜劇之王, 歲月神偷, 借東西的小人阿莉埃蒂, 神偷奶爸, 七武士, 殺人回憶, 海洋, 真愛至上, 電鋸驚魂, 貧民窟的百萬富翁, 諜影重重3, 喜宴, 東邪西毒, 記憶碎片, 雨人, 怪獸電力公司, 瘋狂原始人, 黑天鵝, 英雄本色, 燃情歲月, 盧旺達飯店, 虎口脫險, 戀戀筆記本, 海邊的曼徹斯特, 傲慢與偏見, 7號房的禮物, 哈利·波特與死亡聖器(下), 小森林 冬春篇, 螢火之森, 完美的世界, 教父3, 縱橫四海, 二十二, 魂斷藍橋, 猜火車, 荒蠻故事, 穿越時空的少女, 玩具總動員3, 花樣年華, 雨中曲, 唐伯虎點秋香, 超能陸戰隊, 時空戀旅人, 我是山姆, 蝙蝠俠:黑暗騎士崛起, 人工智能, 心迷宮, 浪潮, 冰川時代, 香水, 朗讀者, 羅生門, 追隨, 爆裂鼓手, 一次別離, 撞車, 未麻的部屋, 可可西裏, 請以你的名字呼喚我, 戰爭之王, 血戰鋼鋸嶺, 地球上的星星, 恐怖遊輪, 夢之安魂曲, 達拉斯買家俱樂部, 被解救的姜戈, 阿飛正傳, 牯嶺街少年殺人事件, 諜影重重, 諜影重重2, 魔女宅急便, 碧海藍天, 忠犬八公物語, 驚魂記, 頭腦特工隊, 房間, 再次出發之紐約遇見你, 青蛇, 秒速5厘米, 哪咤鬧海, 東京物語, 海盜電臺, 末路狂花, 綠裏奇跡, 終結者2:審判日, 源代碼, 模仿遊戲, 勇闖奪命島, 新龍門客棧, 黑客帝國3:矩陣革命, 這個男人來自地球, 卡薩布蘭卡, 一個叫歐維的男人決定去死, 城市之光, 變臉, 荒野生存, 遷徙的鳥, 你的名字。, E.T. 外星人, 初戀這件小事, 無恥混蛋, 發條橙, 美國麗人, 黃金三鏢客, 英國病人, 小蘿莉的猴神大叔, 愛在午夜降臨前, 燕尾蝶, 無人知曉, 非常嫌疑犯, 叫我第一名, 穆赫蘭道, 瘋狂的石頭, 勇士, 無敵破壞王, 國王的演講, 步履不停, 血鉆, 上帝也瘋狂, 彗星來的那一夜, 槍火, 藍色大門, 大衛·戈爾的一生, 遺願清單, 我愛你, 千鈞一發, 荒島余生, 愛·回家, 黑鷹墜落, 麥兜故事, 暖暖內含光, 聚焦]

完成既定目標。

參考書目:《Python 網絡爬蟲 》

Python開發簡單爬蟲之靜態網頁抓取篇:爬取“豆瓣電影 Top 250”電影數據