我想得到find\u all结果的文本,但是为什么当我将文本存储在for循环中时,它仍然包含所有标记?你知道吗
import requests
from bs4 import BeautifulSoup
import csv
f = csv.writer(open('imdb-films', 'w'))
f.writerow(['Rank','Movie-name', 'Year', 'Score', 'Director'])
url = 'https://www.imdb.com/search/title?title_type=feature&release_date=2018-01-01,2018-12-31&ref_=adv_prv'
contents = requests.get(url)
soup = BeautifulSoup(contents.text, 'lxml')
rank = soup.find('div', class_ = 'lister-list')
print(rank.prettify())
for rank in rank.find_all('span', class_="lister-item-index unbold text-primary"):
rank_list = rank.text
如果我将for循环改为以下内容,它就可以工作了。你知道吗
for rank in rank.find_all('span', class_="lister-item-index unbold text-primary"):
print rank.text
它生成我想要的结果;我只希望那些打印出来的数字存储在变量中,作为列表或数组
根据下面的答案修改代码后,上述问题就解决了。谢谢您!!
但现在我遇到了一个新问题。你知道吗
director_list = []
for director in rank.find_all('p', class_ = ""):
director_next = director.a.text
director_list.append(director_next)
print(director_list)
此代码生成以下输出:
AttributeError: 'NoneType' object has no attribute 'text'
我不知道为什么“director\u next=director.a”会生成一个none类型,以及如何修复该类型以提取控制器的名称。你知道吗
您可以使用
get_text()
函数,应该首先创建一个list
。你知道吗试试这个:
顺便说一句,请重写你的问题,它看起来很混乱。你知道吗
似乎你可以这样做:
还可以将字符串转换为浮点:
相关问题 更多 >
编程相关推荐