1. 程式人生 > 實用技巧 >Spider--基礎總結--實戰--bs靜態網頁爬取TOP250電影

Spider--基礎總結--實戰--bs靜態網頁爬取TOP250電影

import requests
from bs4 import BeautifulSoup

def gettop250():
    headers={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
        'Host':'movie.douban.com'
    }
    move_list=[]
    url='https://movie.douban.com/top250?start='
    for i in range(10):
        r=requests.get(url+str(i*25)+"&filter=",headers=headers,timeout=10)  # 不使用headers引數時請求不到結果。
        soup=BeautifulSoup(r.text,'lxml')  # 可把 r.text換成 r.content
        #div_list=soup.find_all('div',class_='hd')  #或:
        div_list=soup.find('div',class_='article').find_all('div',class_='info')
        for move in div_list:
            move_list.append(move.a.span.text.strip())
    return move_list

print(gettop250())
import requests
from bs4 import BeautifulSoup
def get_movies():
    headers={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
        'Host':'movie.douban.com'
    }
    movie_list=[]
    for i in range(0,10):
        link='https://movie.douban.com/top250?start='+str(i*25)
        r=requests.get(link,headers=headers,timeout=10)
#         print(str(i+1),'頁響應狀態碼:',r.status_code)
        soup=BeautifulSoup(r.text,'html.parser')
        div_list=soup.find_all('div',class_='hd')
        for each in div_list:
            movie=each.a.span.text.strip() # 相關定位問題參見https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id20
            movie_list.append(movie)
    return movie_list
movies=get_movies()
print(movies)

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