吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2478|回复: 24
收起左侧

[Python 转载] 爬取豆瓣top250的电影排行

  [复制链接]
一個賬號 发表于 2022-8-11 17:38
我们在在观看一部电影之前,通常会在网上查看评分,而基本上这些评分都是来自于豆瓣,今天我就教大家如何用python爬取豆瓣top250的排名,代码如下:
[Python] 纯文本查看 复制代码
import requests
import bs4
import re

def open_url(url):

    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'}


    res = requests.get(url, headers=headers)

    return res

def find_movies(res):
    soup = bs4.BeautifulSoup(res.text, 'html.parser')
 
    # 电影名
    movies = []
    targets = soup.find_all("div", class_="hd")
    for each in targets:
        movies.append(each.a.span.text)

    # 评分
    ranks = []
    targets = soup.find_all("span", class_="rating_num")
    for each in targets:
        ranks.append(' 评分:%s ' % each.text)

    # 资料
    messages = []
    targets = soup.find_all("div", class_="bd")
    for each in targets:
        try:
            messages.append(each.p.text.split('\n')[1].strip() + each.p.text.split('\n')[2].strip())
        except:
            continue

    result = []
    length = len(movies)
    for i in range(length):
        result.append(movies[i] + ranks[i] + messages[i] + '\n')

    return result

# 找出一共有多少个页面
def find_depth(res):
    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    depth = soup.find('span', class_='next').previous_sibling.previous_sibling.text

    return int(depth)

def main():
    host = "https://movie.douban.com/top250"
    res = open_url(host)
    depth = find_depth(res)

    result = []
    for i in range(depth):
        url = host + '/?start=' + str(25 * i)
        res = open_url(url)
        result.extend(find_movies(res))

    with open("豆瓣TOP250电影.txt", "w", encoding="utf-8") as f:
        for each in result:
            f.write(each)
    
if __name__ == "__main__":
    main()


演示截图

演示截图

免费评分

参与人数 4吾爱币 +3 热心值 +4 收起 理由
YINGZIT + 1 我很赞同!
zxyzdcfy + 1 + 1 谢谢@Thanks!
qweyongyuan + 1 + 1 我很赞同!
joneqm + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wangxiaohu104 发表于 2022-8-11 20:46
谢谢楼主分享,学习了
icodeme 发表于 2022-8-11 21:18
erui 发表于 2022-8-11 21:18
Dipy 发表于 2022-8-11 21:32
实测 有用 辛苦楼主了
lcx4wapj 发表于 2022-8-11 22:21
谢谢分享
大荣 发表于 2022-8-11 22:38
谢谢分享啊
lingweiqiu 发表于 2022-8-11 23:27
谢谢分享
zzqiang97 发表于 2022-8-12 00:04
感谢分享
ly201112 发表于 2022-8-12 00:07
辛苦楼主,之后试试看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 01:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表