Python 名称错误:未定义名称“Title”(为什么未定义“Title”)

Python 名称错误:未定义名称“Title”(为什么未定义“Title”),python,syntax-error,Python,Syntax Error,下面的代码一直工作到最后一行: writer.writerow([Title, Views, Likes, Dislikes, datetime.now()]) 我收到这个错误: NameErrorTraceback (most recent call last) <ipython-input-45-1666dd7f773b> in <module>() ----> 1 writer.writerow([Title, Views, Likes, Dislikes,

下面的代码一直工作到最后一行:

writer.writerow([Title, Views, Likes, Dislikes, datetime.now()])
我收到这个错误:

NameErrorTraceback (most recent call last)
<ipython-input-45-1666dd7f773b> in <module>()
----> 1 writer.writerow([Title, Views, Likes, Dislikes, datetime.now()])

NameError: name 'Title' is not defined
有人能告诉我发生了什么事吗????使用python2和Jupyter

from urllib2 import urlopen
from bs4 import BeautifulSoup
import pandas as pd
import re
import requests



myurl = 'https://www.youtube.com/results?search_query=sports'





page = requests.get("https://www.youtube.com/results?search_query=sports")
page.status_code


soup = BeautifulSoup(page.content, 'html.parser')
soup
link_list = []

for link in soup.select('div.yt-lockup-content a[href^=/watch]'):
    newLink = link.attrs.get('href')
    link_list.append(newLink)

print(link_list[0:6])

index = range(len(link_list))
columns = ['Links', 'Title', 'Views', 'Likes', 'Dislikes']
df = pd.DataFrame(index=index, columns=columns)

df['Links'] = link_list
df['Links'] = 'https://www.youtube.com/' + df['Links']


for i in range(len(link_list)):
    if i<5 or i>len(link_list)-5:
        print('{} out of {}'.format(i, len(link_list)))


    html = urlopen(df['Links'][i]).read()
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html.decode('utf-8', 'ignore'))

    df['Title'][i] = soup.title.get_text()
    df['Views'][i] = int(re.sub('[^0-9]', '',soup.select('.watch-view-count')[0].get_text().split()[0]))


    df['Title'][i] = soup.title.get_text()
    df['Views'][i] = int(re.sub('[^0-9]', '', soup.select('.watch-view-count')[0].get_text().split()[0]))


    a = str(soup.find_all('button', \
      attrs={'title': 'I like this'})).replace(",","")
    df['Likes'][i] = float(re.findall(r'\d+', a)[0])


    a = str(soup.find_all('button', \
      attrs={'title': 'I dislike this'})).replace(",","")
    df['Dislikes'][i] =  float(re.findall(r'\d+', a)[0])


print(df.sort_values('Views', ascending = False).head())


print(df.sort_values('Views', ascending = False))

with open('youtube.csv', 'a') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow([Title, Views, Likes, Dislikes, datetime.now()])
排队

writer.writerow([Title, Views, Likes, Dislikes, datetime.now()])

您使用的是标题,而不是标题。Python将其解释为查找变量标题并将其值放在此处。当您真正想要做的是传递字符串值标题时。您需要将标题、视图、喜欢和不喜欢都放在引号中。

为什么您认为这些变量会被定义?看起来您需要df.to\u csv行的第一项是列表;该列表中的前四项是程序中其他地方没有出现的变量名。您希望此语句做什么?请将您的代码片段减少到演示此问题的最小块。