TypeError:“NoneType”对象不可订阅,webscrapin Python

2024-10-01 11:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码用于从网页中搜索电影并打印搜索结果的第一个标题。在

from urllib.request import urlopen
import urllib
from bs4 import BeautifulSoup
import requests
import pprint

def infopelicula(nombrepelicula):
    my_url='http://www.imdb.com/find?ref_=nv_sr_fn&q='+nombrepelicula+'&s=tt'
    rprincipal = requests.get(my_url)
    soup= BeautifulSoup(rprincipal.content, 'html.parser')
    title = soup.findAll("td", class_="result_text")
    for name in title:
        titulo = name.parent.find("a", href=True)
        print (name.text)[0]

它确实有效,但打印标题时,会出现错误。 这里有一个例子:

^{pr2}$

Tags: textnamefromimporturl标题titlemy
2条回答

在Python3.5中,print是一个返回{}的函数,这个函数(错误清楚地说)不能下标。在

也许你是说print(name.text[0])?在

这个怎么样:

import requests
from bs4 import BeautifulSoup

def infopelicula():
    my_url = 'http://www.imdb.com/find?ref_=nv_sr_fn&q="Harry Potter Chamber"&s=tt'
    soup = BeautifulSoup(requests.get(my_url).text, 'lxml')
    for name in soup.find_all("td",class_="result_text"):
        title = name.find_all("a",text=True)[0]
        print (title.text)
infopelicula()

部分输出:

^{pr2}$

仅第一个标题:

import requests
from bs4 import BeautifulSoup

def infopelicula():
    my_url = 'http://www.imdb.com/find?ref_=nv_sr_fn&q="Harry Potter Chamber"&s=tt'
    soup = BeautifulSoup(requests.get(my_url).text, 'lxml')
    for name in soup.find_all("td",class_="result_text")[:1]:
        title = name.find_all("a",text=True)[0]
        print (title.text)
infopelicula()

输出:

Harry Potter and the Chamber of Secrets

相关问题 更多 >