博客:分析IMDb的前250部电影:第1部分;让我们搜集一些数据
问题是,每当我想要检索IMDb前250部电影中的单个页面链接时,都会出现一个错误:AttributeError: 'NoneType' object has no attribute 'get_text'
这意味着我知道它没有所需的类名或我们在HTML中寻找的元素。但是HTML由我传递的类名组成。
我实现了与博客相同的功能,但我无法检索单个电影并获取数据。
以下代码与博客中的代码相同:
import requests # Simpler HTTP requests
from bs4 import BeautifulSoup # Python package for pulling data out of HTML and XML files
import pandas as pd # Python package for data manipulation and analysis
import re # regular expressions
import json # Python package used to work with JSON data
from tqdm import tqdm # python for displaying progressbar
from datetime import datetime
url = 'https://www.imdb.com/chart/top'
url_text = requests.get(url).text
soup = BeautifulSoup(url_text, 'html.parser'
template = 'https://www.imdb.com%s'
title_links = [template % a.attrs.get('href') for a in url_soup.select( 'td.titleColumn a' )]
movie_name = (page_soup.find("div",{ "class":"title_wrapper" }).get_text( strip=True ).split('|')[0]).split('(')[0]
您需要的数据可以很容易地在
td
标签中找到,标签的类名为titleColumn
。您可以从那里提取电影名称和链接在这里,我将展示前10部电影。您可以修改此代码以满足您的要求
有一个更简单的方法来获得冠军。每个页面都有一个
<title>
元素,其中正好包含您需要的信息:相关问题 更多 >
编程相关推荐