Python 使用BS4进行网页抓取

Python 使用BS4进行网页抓取,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我在imdb.com上抓取一些关于电影的基本信息时遇到了问题。我希望我的程序从给定的URL获取电影的标题和描述。标题部分正在发挥作用,但我不知道如何获得描述。这是我的密码: import requests from bs4 import BeautifulSoup as bs def get_data(url): r = requests.get(url, headers={'Accept-Language': 'en-US,en;q=0.5'}) if not r or '

我在imdb.com上抓取一些关于电影的基本信息时遇到了问题。我希望我的程序从给定的URL获取电影的标题和描述。标题部分正在发挥作用,但我不知道如何获得描述。这是我的密码:

import requests

from bs4 import BeautifulSoup as bs

def get_data(url):
    r = requests.get(url, headers={'Accept-Language': 'en-US,en;q=0.5'})
    if not r or 'https://www.imdb.com/title' not in url:
        return print('Invalid movie page!')
    return r.content

if __name__ == '__main__':
    # print('Input the URL:')
    # link = input()
    link = 'https://www.imdb.com/title/tt0111161'
    data = get_data(link)
    soup = bs(data, 'html.parser')
    title = ' '.join(soup.find('h1').text.split()[:-1])
    desc = soup.find('p', {'data-testid':"plot", 'class':"GenresAndPlot__Plot-cum89p-8 kmrpno"}).text
    movie_info = {'title': title, 'description': desc}
    print(movie_info)
当我运行它时,我得到一个错误:

Exception has occurred: AttributeError
'NoneType' object has no attribute 'text'
  File "movie-scraper.py", line 18, in <module>
    desc = soup.find('p', {'data-testid':"plot", 'class':"GenresAndPlot__Plot-cum89p-8 kmrpno"}).text
发生异常:AttributeError “非类型”对象没有属性“文本” 文件“movie scraper.py”,第18行,在 desc=soup.find('p',{'data-testid':“plot”,'class':“GenresAndPlot\uu plot-cum89p-8 kmrpno”})。文本
如何正确访问描述?

若要获取绘图摘要,请更改选择器以查找
class=“plot\u summary”

导入请求
从bs4导入BeautifulSoup作为bs
def get_数据(url):
r=requests.get(url,headers={“接受语言”:“en-US,en;q=0.5”})
如果不是r或“https://www.imdb.com/title“不在url中:
返回打印(“无效的电影页面!”)
返回r.content
如果名称=“\uuuuu main\uuuuuuuu”:
链接=”https://www.imdb.com/title/tt0111161"
数据=获取数据(链接)
soup=bs(数据,“html.parser”)
title=”“.join(soup.find(“h1”).text.split()[:-1])

desc=soup.find(“div”,class=“plot\u summary”).get_text(strip=True)#只需更改
desc=soup.find('div',attrs={'class':“summary\u text})。text
您将获得输出或打印soup,并找到包含该描述并使用该类查找文本数据的div标记