You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用正则表达式通过Python爬取IMDB网站250条评分链接并保存为txt文件

问题解答

你说的思路没问题,re.findall就是这个场景下最适配的方法,不需要依赖DOM解析库,直接匹配页面中符合规则的链接即可完成需求。

匹配逻辑说明:IMDB Top250页面内的单部影片链接统一格式为 /title/tt<数字ID>/,直接匹配该格式的字符串就能拿到全部250条目标链接,不需要额外解析页面结构。

完整实现代码

import re
from urllib.request import urlopen
import numpy as np

url = 'https://www.imdb.com/chart/top'
# 请求页面并获取utf-8编码的HTML文本
html_content = urlopen(url).read().decode('utf-8')

# 正则匹配所有符合格式的影片链接
url_pattern = r'/title/tt\d+/'
all_urls = re.findall(url_pattern, html_content)

# 校验提取数量
print(f"合计提取到{len(all_urls)}条影片链接")

# 和你之前的实现逻辑保持一致,用numpy保存为txt
data = np.array(all_urls)
np.savetxt('urls.txt', data, fmt='%s', encoding='utf-8')

可选优化项

  • 若不需要依赖numpy,可直接用Python原生方法写文件,更轻量化:
# 原生写文件替代numpy方案
with open('urls.txt', 'w', encoding='utf-8') as f:
    for single_url in all_urls:
        f.write(single_url + '\n')
  • 若需要提取可直接访问的完整域名链接,可将正则修改为 r'https://www.imdb.com/title/tt\d+/',匹配结果直接带完整前缀。
  • 若直接请求被网站拦截,可给urlopen添加User-Agent请求头,伪装成浏览器访问即可。
  • 若需要严格保持和页面展示的排序一致,不需要加去重逻辑,官方页面内符合该格式的链接刚好为250条,无重复内容。

内容的提问来源于stack exchange,提问作者user16835025

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:21:02