我从另一个脚本中获取了以下代码并根据我的需要进行了修改。我要做的是在Google趋势中针对不同的地理位置和不同的时间段进行相同的查询。
import csv
read_list=open("GTrends Georreference.csv")
geo_list=csv.reader(read_list, delimiter=',')
import csv
read_list2=open("Dates.csv")
date_list=csv.reader(read_list2, delimiter=',')
#connect to Google
connector = pyGTrends(google_username, google_password)
for i in geo_list:
geo=str(i)
geo=geo[2:-2]
for j in date_list:
dat=str(j)
dat=dat[2:-2]
mon=dat.split('/')[-2]
yr=dat[5:7]
#make request
connector.request_report(query,"","",geo,dat)
#wait a random amount of time between requests to avoid bot detection
#time.sleep(randint(1,3))
#download file
connector.save_csv(path, query +"_"+ geo +"_"+ mon+"-"+yr)
但是,当我运行它时,它只运行地理参考列表的第一个元素和所有句点,但随后它会停止。我做错了什么?
非常感谢你。
编辑:CVS如下所示:
Georreference one:
US
US-AK
US-AL
US-AR
US-AK
US-CA
US-CO
US-CT
US-FL
US-GA
US-HI
US-IA
US-ID
US-IL
US-IN
US-KS
US-KY
US-LA
US-MA
日期:
01/2004 3m
04/2004 3m
07/2004 3m
10/2004 3m
01/2005 3m
04/2005 3m
07/2005 3m
10/2005 3m
01/2006 3m
04/2006 3m
07/2006 3m
10/2006 3m
01/2007 3m
04/2007 3m
07/2007 3m
10/2007 3m
01/2008 3m
04/2008 3m
07/2008 3m
我不得不说,如果没有嵌套循环(即,使用geo_list的所有值来表示一个特定日期),它就可以正常工作。这只是两个循环的组合似乎不起作用。
答案 0 :(得分:0)
我不知道它为什么会起作用,但我通过改变python导入.CSVs的方式克服了这个问题:
import csv
with open ("GTrends Georreference.csv", "r") as f:
reader=csv.reader(f)
geo_list=list(reader)
import csv
with open ("Dates.csv") as f:
reader=csv.reader(f)
date_list=list(reader)
有了它,就像魅力一样。