豆瓣电影top250名单

查看 115|回复 10
作者:zixindidadaya   
豆瓣电影top250名单
代码如下面所示:
#
实现豆瓣电影
top250
名单
[color=]import
requests
[color=]import
re
[color=]for
i
[color=]in
[color=]range
(
[color=]1
[color=],
[color=]11
):
    page = (i -
[color=]1
) * 25
[color=]   
url =
[color=]f"https://movie.douban.com/top250?start=
[color=]{
page
[color=]}
&filter="
[color=]   
head = {
        
[color=]"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 "
[color=]   
}
    resp = requests.get(url
[color=],
[color=]headers
=head)
    resp.encoding = "utf-8"
[color=]   
obj = re.compile(r'.*?(?P.*?)'
                     r'.*?
(?P.*?) .*?'
                     r'(?P.*?).*?(?P.*?)
[color=]人评价
'
[color=],
re.S)
    result = obj.finditer(resp.text)
   
[color=]for
item
[color=]in
result:
        dic = item.groupdict()
        dic[
[color=]'year'
] = dic[
[color=]'year'
].strip()
        
[color=]print
(dic)

豆瓣, 名单

MrCao   

贴个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 .*?(.*?)"
                        + ".*?
(.*?) .*?"
                        + "(.*?).*?(.*?)人评价";
                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   

[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'.*?(?P.*?)'
                     r'.*?
(?P.*?) .*?'
                     r'(?P.*?).*?(?P.*?)人评价', re.S)
    # 使用finditer方法查找所有匹配的电影信息
    result = obj.finditer(resp.text)
    # 遍历匹配结果
    for item in result:
        # 将匹配结果转换为字典
        dic = item.groupdict()
        # 清理年份信息中的空白字符
        dic['year'] = dic['year'].strip()
        # 打印电影信息字典
        print(dic)
```
zhangting2022   

感谢分享
apaye   

学习了,都已下载
EssenceA1   

感谢分享,奈何本人能力有限,看不太懂
dbu00956   


apaye 发表于 2024-8-27 06:43
学习了,都已下载

灌溉农田???
52soft   

赶紧测试一下
abc023119   

看不懂  还是感谢 分享
Wapj_Wolf   

未完待续?代码怎么才这么几行啊。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部