爬取豆瓣电影Top250

时间:2024-03-01 11:06:16

1
import json 2 import requests 3 from requests.exceptions import RequestException 4 import re 5 import time 6 7 8 def get_one_page(url): 9 try: 10 headers = { 11 \'User-Agent\': \'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36\' 12 } 13 response = requests.get(url, headers=headers) 14 if response.status_code == 200: 15 return response.text 16 return None 17 except RequestException: 18 return None 19 20 21 def parse_one_page(html): 22 pattern = re.compile(\'<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a\' 23 + \'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>\' 24 + \'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>\', re.S) 25 items = re.findall(pattern, html) 26 for item in items: 27 yield { 28 \'index\': item[0], 29 \'image\': item[1], 30 \'title\': item[2], 31 \'actor\': item[3].strip()[3:], 32 \'time\': item[4].strip()[5:], 33 \'score\': item[5] + item[6] 34 } 35 36 37 def write_to_file(content): 38 with open(\'result.txt\', \'a\', encoding=\'utf-8\') as f: 39 f.write(json.dumps(content, ensure_ascii=False) + \'\n\') 40 41 42 def main(offset): 43 url = \'http://maoyan.com/board/4?offset=\' + str(offset) 44 html = get_one_page(url) 45 for item in parse_one_page(html): 46 print(item) 47 write_to_file(item) 48 49 50 if __name__ == \'__main__\': 51 for i in range(10): 52 main(offset=i * 10) 53 time.sleep(1)

看下结果

{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "1", "title": "肖申克的救赎"}
{"paiming": "2", "title": "霸王别姬"}
{"paiming": "3", "title": "这个杀手不太冷"}
{"paiming": "4", "title": "阿甘正传"}
{"paiming": "5", "title": "美丽人生"}
{"paiming": "6", "title": "泰坦尼克号"}
{"paiming": "7", "title": "千与千寻"}
{"paiming": "8", "title": "辛德勒的名单"}
{"paiming": "9", "title": "盗梦空间"}
{"paiming": "10", "title": "机器人总动员"}
{"paiming": "11", "title": "忠犬八公的故事"}
{"paiming": "12", "title": "三傻大闹宝莱坞"}
{"paiming": "13", "title": "海上钢琴师"}
{"paiming": "14", "title": "放牛班的春天"}
{"paiming": "15", "title": "大话西游之大圣娶亲"}
{"paiming": "16", "title": "楚门的世界"}
{"paiming": "17", "title": "教父"}
{"paiming": "18", "title": "龙猫"}
{"paiming": "19", "title": "星际穿越"}
{"paiming": "20", "title": "熔炉"}
{"paiming": "21", "title": "无间道"}
{"paiming": "22", "title": "触不可及"}
{"paiming": "23", "title": "当幸福来敲门"}
{"paiming": "24", "title": "乱世佳人"}
{"paiming": "25", "title": "怦然心动"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "26", "title": "疯狂动物城"}
{"paiming": "27", "title": "天堂电影院"}
{"paiming": "28", "title": "蝙蝠侠:黑暗骑士"}
{"paiming": "29", "title": "十二怒汉"}
{"paiming": "30", "title": "鬼子来了"}
{"paiming": "31", "title": "活着"}
{"paiming": "32", "title": "少年派的奇幻漂流"}
{"paiming": "33", "title": "指环王3:王者无敌"}
{"paiming": "34", "title": "搏击俱乐部"}
{"paiming": "35", "title": "天空之城"}
{"paiming": "36", "title": "控方证人"}
{"paiming": "37", "title": "飞屋环游记"}
{"paiming": "38", "title": "大话西游之月光宝盒"}
{"paiming": "39", "title": "罗马假日"}
{"paiming": "40", "title": "窃听风暴"}
{"paiming": "41", "title": "两杆大烟枪"}
{"paiming": "42", "title": "飞越疯人院"}
{"paiming": "43", "title": "闻香识女人"}
{"paiming": "44", "title": "哈尔的移动城堡"}
{"paiming": "45", "title": "摔跤吧!爸爸"}
{"paiming": "46", "title": "辩护人"}
{"paiming": "47", "title": "死亡诗社"}
{"paiming": "48", "title": "V字仇杀队"}
{"paiming": "49", "title": "海豚湾"}
{"paiming": "50", "title": "教父2"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "51", "title": "指环王2:双塔奇兵"}
{"paiming": "52", "title": "美丽心灵"}
{"paiming": "53", "title": "指环王1:魔戒再现"}
{"paiming": "54", "title": "饮食男女"}
{"paiming": "55", "title": "情书"}
{"paiming": "56", "title": "素媛"}
{"paiming": "57", "title": "狮子王"}
{"paiming": "58", "title": "美国往事"}
{"paiming": "59", "title": "钢琴家"}
{"paiming": "60", "title": "小鞋子"}
{"paiming": "61", "title": "七宗罪"}
{"paiming": "62", "title": "被嫌弃的松子的一生"}
{"paiming": "63", "title": "致命魔术"}
{"paiming": "64", "title": "天使爱美丽"}
{"paiming": "65", "title": "本杰明·巴顿奇事"}
{"paiming": "66", "title": "西西里的美丽传说"}
{"paiming": "67", "title": "音乐之声"}
{"paiming": "68", "title": "黑客帝国"}
{"paiming": "69", "title": "让子弹飞"}
{"paiming": "70", "title": "拯救大兵瑞恩"}
{"paiming": "71", "title": "看不见的客人"}
{"paiming": "72", "title": "低俗小说"}
{"paiming": "73", "title": "勇敢的心"}
{"paiming": "74", "title": "剪刀手爱德华"}
{"paiming": "75", "title": "沉默的羔羊"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "76", "title": "末代皇帝"}
{"paiming": "77", "title": "大闹天宫"}
{"paiming": "78", "title": "蝴蝶效应"}
{"paiming": "79", "title": "入殓师"}
{"paiming": "80", "title": "春光乍泄"}
{"paiming": "81", "title": "心灵捕手"}
{"paiming": "82", "title": "玛丽和马克思"}
{"paiming": "83", "title": "哈利·波特与魔法石"}
{"paiming": "84", "title": "阳光灿烂的日子"}
{"paiming": "85", "title": "布达佩斯大饭店"}
{"paiming": "86", "title": "禁闭岛"}
{"paiming": "87", "title": "幽灵公主"}
{"paiming": "88", "title": "第六感"}
{"paiming": "89", "title": "猫鼠游戏"}
{"paiming": "90", "title": "重庆森林"}
{"paiming": "91", "title": "狩猎"}
{"paiming": "92", "title": "致命ID"}
{"paiming": "93", "title": "断背山"}
{"paiming": "94", "title": "大鱼"}
{"paiming": "95", "title": "穿条纹睡衣的男孩"}
{"paiming": "96", "title": "加勒比海盗"}
{"paiming": "97", "title": "告白"}
{"paiming": "98", "title": "甜蜜蜜"}
{"paiming": "99", "title": "一一"}
{"paiming": "100", "title": "射雕英雄传之东成西就"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "101", "title": "阿凡达"}
{"paiming": "102", "title": "摩登时代"}
{"paiming": "103", "title": "阳光姐妹淘"}
{"paiming": "104", "title": "上帝之城"}
{"paiming": "105", "title": "爱在黎明破晓前"}
{"paiming": "106", "title": "消失的爱人"}
{"paiming": "107", "title": "侧耳倾听"}
{"paiming": "108", "title": "风之谷"}
{"paiming": "109", "title": "爱在日落黄昏时"}
{"paiming": "110", "title": "超脱"}
{"paiming": "111", "title": "倩女幽魂"}
{"paiming": "112", "title": "恐怖直播"}
{"paiming": "113", "title": "红辣椒"}
{"paiming": "114", "title": "小森林 夏秋篇"}
{"paiming": "115", "title": "喜剧之王"}
{"paiming": "116", "title": "菊次郎的夏天"}
{"paiming": "117", "title": "驯龙高手"}
{"paiming": "118", "title": "幸福终点站"}
{"paiming": "119", "title": "借东西的小人阿莉埃蒂"}
{"paiming": "120", "title": "神偷奶爸"}
{"paiming": "121", "title": "萤火虫之墓"}
{"paiming": "122", "title": "七武士"}
{"paiming": "123", "title": "岁月神偷"}
{"paiming": "124", "title": "杀人回忆"}
{"paiming": "125", "title": "怪兽电力公司"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "126", "title": "谍影重重3"}
{"paiming": "127", "title": "喜宴"}
{"paiming": "128", "title": "贫民窟的百万富翁"}
{"paiming": "129", "title": "电锯惊魂"}
{"paiming": "130", "title": "东邪西毒"}
{"paiming": "131", "title": "真爱至上"}
{"paiming": "132", "title": "记忆碎片"}
{"paiming": "133", "title": "黑天鹅"}
{"paiming": "134", "title": "疯狂原始人"}
{"paiming": "135", "title": "小森林 冬春篇"}
{"paiming": "136", "title": "雨人"}
{"paiming": "137", "title": "海洋"}
{"paiming": "138", "title": "哈利·波特与死亡圣器(下)"}
{"paiming": "139", "title": "请以你的名字呼唤我"}
{"paiming": "140", "title": "卢旺达饭店"}
{"paiming": "141", "title": "萤火之森"}
{"paiming": "142", "title": "英雄本色"}
{"paiming": "143", "title": "7号房的礼物"}
{"paiming": "144", "title": "心迷宫"}
{"paiming": "145", "title": "虎口脱险"}
{"paiming": "146", "title": "燃情岁月"}
{"paiming": "147", "title": "荒蛮故事"}
{"paiming": "148", "title": "傲慢与偏见"}
{"paiming": "149", "title": "超能陆战队"}
{"paiming": "150", "title": "蝙蝠侠:黑暗骑士崛起"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "151", "title": "海边的曼彻斯特"}
{"paiming": "152", "title": "唐伯虎点秋香"}
{"paiming": "153", "title": "教父3"}
{"paiming": "154", "title": "纵横四海"}
{"paiming": "155", "title": "恋恋笔记本"}
{"paiming": "156", "title": "时空恋旅人"}
{"paiming": "157", "title": "玩具总动员3"}
{"paiming": "158", "title": "完美的世界"}
{"paiming": "159", "title": "花样年华"}
{"paiming": "160", "title": "达拉斯买家俱乐部"}
{"paiming": "161", "title": "二十二"}
{"paiming": "162", "title": "猜火车"}
{"paiming": "163", "title": "魂断蓝桥"}
{"paiming": "164", "title": "雨中曲"}
{"paiming": "165", "title": "无人知晓"}
{"paiming": "166", "title": "穿越时空的少女"}
{"paiming": "167", "title": "我是山姆"}
{"paiming": "168", "title": "冰川时代"}
{"paiming": "169", "title": "人工智能"}
{"paiming": "170", "title": "血战钢锯岭"}
{"paiming": "171", "title": "爆裂鼓手"}
{"paiming": "172", "title": "浪潮"}
{"paiming": "173", "title": "朗读者"}
{"paiming": "174", "title": "罗生门"}
{"paiming": "175", "title": "香水"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "176", "title": "未麻的部屋"}
{"paiming": "177", "title": "被解救的姜戈"}
{"paiming": "178", "title": "阿飞正传"}
{"paiming": "179", "title": "头脑特工队"}
{"paiming": "180", "title": "可可西里"}
{"paiming": "181", "title": "恐怖游轮"}
{"paiming": "182", "title": "一次别离"}
{"paiming": "183", "title": "追随"}
{"paiming": "184", "title": "房间"}
{"paiming": "185", "title": "撞车"}
{"paiming": "186", "title": "战争之王"}
{"paiming": "187", "title": "你的名字。"}
{"paiming": "188", "title": "地球上的星星"}
{"paiming": "189", "title": "模仿游戏"}
{"paiming": "190", "title": "魔女宅急便"}
{"paiming": "191", "title": "一个叫欧维的男人决定去死"}
{"paiming": "192", "title": "忠犬八公物语"}
{"paiming": "193", "title": "牯岭街少年杀人事件"}
{"paiming": "194", "title": "谍影重重"}
{"paiming": "195", "title": "梦之安魂曲"}
{"paiming": "196", "title": "谍影重重2"}
{"paiming": "197", "title": "完美陌生人"}
{"paiming": "198", "title": "青蛇"}
{"paiming": "199", "title": "惊魂记"}
{"paiming": "200", "title": "哪吒闹海"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "201", "title": "再次出发之纽约遇见你"}
{"paiming": "202", "title": "小萝莉的猴神大叔"}
{"paiming": "203", "title": "黑客帝国3:矩阵革命"}
{"paiming": "204", "title": "东京物语"}
{"paiming": "205", "title": "新龙门客栈"}
{"paiming": "206", "title": "源代码"}
{"paiming": "207", "title": "终结者2:审判日"}
{"paiming": "208", "title": "末路狂花"}
{"paiming": "209", "title": "步履不停"}
{"paiming": "210", "title": "绿里奇迹"}
{"paiming": "211", "title": "秒速5厘米"}
{"paiming": "212", "title": "海街日记"}
{"paiming": "213", "title": "碧海蓝天"}
{"paiming": "214", "title": "城市之光"}
{"paiming": "215", "title": "初恋这件小事"}
{"paiming": "216", "title": "无敌破坏王"}
{"paiming": "217", "title": "这个男人来自地球"}
{"paiming": "218", "title": "勇闯夺命岛"}
{"paiming": "219", "title": "无耻混蛋"}
{"paiming": "220", "title": "爱在午夜降临前"}
{"paiming": "221", "title": "海盗电台"}
{"paiming": "222", "title": "疯狂的石头"}
{"paiming": "223", "title": "卡萨布兰卡"}
{"paiming": "224", "title": "变脸"}
{"paiming": "225", "title": "E.T. 外星人"}
{"paiming": "{{= title}}", "title": "<span>{{= sub_title}}"}
{"paiming": "226", "title": "发条橙"}
{"paiming": "227", "title": "黄金三镖客"}
{"paiming": "228", "title": "美国丽人"}
{"paiming": "229", "title": "彗星来的那一夜"}
{"paiming": "230", "title": "荒野生存"}
{"paiming": "231", "title": "英国病人"}
{"paiming": "232", "title": "聚焦"}
{"paiming": "233", "title": "血钻"}
{"paiming": "234", "title": "国王的演讲"}
{"paiming": "235", "title": "迁徙的鸟"}
{"paiming": "236", "title": "非常嫌疑犯"}
{"paiming": "237", "title": "勇士"}
{"paiming": "238", "title": "燕尾蝶"}
{"paiming": "239", "title": "黑鹰坠落"}
{"paiming": "240", "title": "遗愿清单"}
{"paiming": "241", "title": "穆赫兰道"}
{"paiming": "242", "title": "叫我第一名"}
{"paiming": "243", "title": "我爱你"}
{"paiming": "244", "title": "枪火"}
{"paiming": "245", "title": "荒岛余生"}
{"paiming": "246", "title": "2001太空漫游"}
{"paiming": "247", "title": "上帝也疯狂"}
{"paiming": "248", "title": "千钧一发"}
{"paiming": "249", "title": "大卫·戈尔的一生"}
{"paiming": "250", "title": "蓝色大门"}