吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2103|回复: 38
收起左侧

[Python 原创] 豆瓣电影top250名单

  [复制链接]
zixindidadaya 发表于 2024-8-26 23:19
本帖最后由 苏紫方璇 于 2024-9-2 13:36 编辑

豆瓣电影top250名单
代码如下面所示:
[Python] 纯文本查看 复制代码
#实现豆瓣电影top250名单
import requests
import re

for i in range(1, 11):
    page = (i - 1) * 25
    url = f"https://movie.douban.com/top250?start={page}&filter="
    head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/122.0.6261.95 Safari/537.36 "
    }
    resp = requests.get(url, headers=head)
    resp.encoding = "utf-8"

    obj = re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>'
                     r'.*?<br>(?P<year>.*?) .*?<span class="rating_num" property="v:average">'
                     r'(?P<score>.*?)</span>.*?<span>(?P<num>.*?)人评价</span>', re.S)
    result = obj.finditer(resp.text)
    for item in result:
        dic = item.groupdict()
        dic['year'] = dic['year'].strip()
        print(dic)

免费评分

参与人数 8吾爱币 +12 热心值 +6 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
leslie23 + 1 + 1 谢谢@Thanks!
zyastc521 + 1 + 1 谢谢@Thanks!
liquidzj + 1 热心回复!
grrr_zhao + 1 + 1 谢谢@Thanks!
wanfon + 1 + 1 热心回复!
shengruqing + 1 我很赞同!
angelabebe + 1 + 1 用心讨论,共获提升!

查看全部评分

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

MrCao 发表于 2024-8-28 08:58
本帖最后由 MrCao 于 2024-8-28 08:59 编辑

贴个Java代码

[Java] 纯文本查看 复制代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DoubanTop250 {

    public static void main(String[] args) {
        try {
            for (int i = 1; i <= 10; i++) {
                int page = (i - 1) * 25;
                String url = "https://movie.douban.com/top250?start=" + page + "&filter=";
                
                // 设置请求头信息
                HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
                connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36");
                connection.setRequestMethod("GET");
                
                // 读取响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                StringBuilder response = new StringBuilder();
                String line;
                while ((line = in.readLine()) != null) {
                    response.append(line);
                }
                in.close();

                // 使用正则表达式匹配电影信息
                String regex = "<div class=\"item\">.*?<span class=\"title\">(.*?)</span>"
                        + ".*?<br>(.*?) .*?<span class=\"rating_num\" property=\"v:average\">"
                        + "(.*?)</span>.*?<span>(.*?)人评价</span>";
                Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
                Matcher matcher = pattern.matcher(response.toString());
                
                // 输出匹配结果
                while (matcher.find()) {
                    String name = matcher.group(1).trim();
                    String year = matcher.group(2).trim().replaceAll("[^0-9]", "");
                    String score = matcher.group(3).trim();
                    String num = matcher.group(4).trim();

                    System.out.println("Name: " + name);
                    System.out.println("Year: " + year);
                    System.out.println("Score: " + score);
                    System.out.println("Number of Reviews: " + num);
                    System.out.println("----------------------------");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
j2017 发表于 2024-8-27 08:01
[Python] 纯文本查看 复制代码
```python
# 导入requests库用于发送网络请求
import requests
# 导入re库用于正则表达式匹配
import re
# 循环遍历豆瓣电影Top250的每一页
for i in range(1, 11):
    # 计算当前页的起始位置
    page = (i - 1) * 25
    # 构建当前页的URL
    url = f"https://movie.douban.com/top250?start={page}&filter="
    # 设置请求头部信息,模拟浏览器访问
    head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/122.0.6261.95 Safari/537.36 "
    }
    # 发送GET请求获取网页内容
    resp = requests.get(url, headers=head)
    # 设置响应内容的编码格式
    resp.encoding = "utf-8"
    # 编写正则表达式匹配电影信息,包括电影名称、年份、评分和评价人数
    obj = re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>'
                     r'.*?<br>(?P<year>.*?)&nbsp;.*?<span class="rating_num" property="v:average">'
                     r'(?P<score>.*?)</span>.*?<span>(?P<num>.*?)人评价</span>', re.S)
    # 使用finditer方法查找所有匹配的电影信息
    result = obj.finditer(resp.text)
    # 遍历匹配结果
    for item in result:
        # 将匹配结果转换为字典
        dic = item.groupdict()
        # 清理年份信息中的空白字符
        dic['year'] = dic['year'].strip()
        # 打印电影信息字典
        print(dic)
```
zhangting2022 发表于 2024-8-27 06:00
apaye 发表于 2024-8-27 06:43
学习了,都已下载
EssenceA1 发表于 2024-8-27 06:54
感谢分享,奈何本人能力有限,看不太懂
dbu00956 发表于 2024-8-27 07:47
apaye 发表于 2024-8-27 06:43
学习了,都已下载

灌溉农田???
52soft 发表于 2024-8-27 07:53
赶紧测试一下
abc023119 发表于 2024-8-27 08:18
看不懂  还是感谢 分享
Wapj_Wolf 发表于 2024-8-27 08:25
未完待续?代码怎么才这么几行啊。
conglin369 发表于 2024-8-27 08:38
没看懂?这个到底是做什么的?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-12 07:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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