【发布时间】:2019-05-17 14:52:36
【问题描述】:
我创建了一个脚本,使用 Python 来解析电影名称及其年份,这些电影名称分布在一个 torrent 站点的多个页面中,并将它们写入一个 csv 文件。它可以正常工作并将数据写入 csv 文件,没有任何问题。
我没有在我的get_data() 函数中使用这一行return itemlist 就完成了整个工作,并且当我创建这个函数write_data() 完全独立时,我将数据写入了一个取自该列表@987654324 的CSV 文件@位于变量URLS下。
如果我保持现有设计不变,是否有必要使用现在被注释掉的return itemlist这一行?如果有,为什么?
import requests
from bs4 import BeautifulSoup
import csv
URLS = ["https://yts.am/browse-movies?page={}".format(page) for page in range(1,6)]
itemlist = []
def get_data(links):
for url in links:
res = requests.get(url)
soup = BeautifulSoup(res.text,"lxml")
for record in soup.select('.browse-movie-bottom'):
items = {}
items["Name"] = record.select_one('.browse-movie-title').text
items["Year"] = record.select_one('.browse-movie-year').text
itemlist.append(items)
# return itemlist
def write_data():
with open("outputfile.csv","w", newline="") as f:
writer = csv.DictWriter(f,['Name','Year'])
writer.writeheader()
for data in itemlist:
writer.writerow(data)
if __name__ == '__main__':
get_data(URLS)
write_data()
【问题讨论】:
-
好吧,反正你也不会使用那个结果。
-
如果要返回列表,它也应该在函数内部创建。这也将使该功能更具可重用性和可测试性。类似地,它应该被传递给第二个函数,它不是当前“完全独立”。但是,如果脚本可以正常工作,您为什么认为需要对其进行任何更改?
-
我听说在函数中使用
return是一种很好的做法,这是我问我所做的是否正确@jonrsharpe 的唯一原因? -
这是
Well, you don't use that result anyway@usr2564301 有什么建议吗?
标签: python python-3.x csv web-scraping return