这是一个相当长的问题,我可能会遗漏一些问题,所以如果需要更多信息,请询问。
我一直在使用scaperwiki从谷歌学者那里搜索数据,直到最近我才把这些网址放到这里。
elec_urls = """http://1.hidemyass.com/ip-5/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPWo0YnRpeXNBQUFBSiZobD1lbg%3D%3D&f=norefer
http://4.hidemyass.com/ip-1/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPVZXaFJiZEFBQUFBSiZobD1lbg%3D%3D&f=norefer
http://4.hidemyass.com/ip-2/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPV84X09JSWNBQUFBSiZobD1lbg%3D%3D&f=norefer
http://1.hidemyass.com/ip-4/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPUh3WHdmTGtBQUFBSiZobD1lbg%3D%3D&f=norefer
http://4.hidemyass.com/ip-1/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPXU1NWFWZEFBQUFBSiZobD1lbg%3D%3D&f=norefer
""".strip()
elec_urls = elec_urls.splitlines()
然后,我浏览每个页面并将我想要的信息放在一个dicts列表中,对其进行排序,删除重复项,然后使用不同的密钥再次对其进行排序,然后将我想要的信息导出到Google文档电子表格中。这100%工作。
我试图更改它,以便我可以使用另一个Google文档电子表格,从这里我可以将所有网址都添加进去,它会做同样的事情。以下是我到目前为止所做的工作。
def InputUrls(Entered_doc, EnteredURL):
username = 'myemail'
password = 'mypassword'
doc_name = Entered_doc
spreadsheet_id = Entered_doc
worksheet_id = 'od6'
# Connect to Google
gd_client = gdata.spreadsheet.service.SpreadsheetsService()
gd_client.email = username
gd_client.password = password
gd_client.source = EnteredURL
gd_client.ProgrammaticLogin()
#Now that we're connected, we query the spreadsheet by name, and extract the unique spreadsheet and worksheet IDs.
rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry
#At this point, you have a row iterator which will yield rows for the spreadsheet. This example will print everything out, keyed by column names:
urlslist = []
for row in rows:
for key in row.custom:
urlslist.append(row.custom[key].text)
return urlslist
def URLStoScrape(ToScrape):
Dep = []
for i in range(0,len(ToScrape)):
Department_urls = ToScrape[i].strip()
Department_urls = Department_urls.splitlines()
Done = MainScraper(Department_urls)
Dep.append(Done)
return Dep
ElectricalDoc = '0AkGb10ekJtfQdG9EOHN0VzRDdVhWaG1kNVEtdVpyRlE'
ElectricalUrl = 'https://docs.google.com/spreadsheet/ccc? '
ToScrape_Elec = InputUrls(ElectricalDoc, ElectricalUrl)
这似乎很好看,但是当程序进行排序时,我得到以下错误。
追踪(最近一次通话): 文件“./code/scraper”,第230行,in Total_and_Hindex_Electrical = GetTotalCitations(Electrical) 在GetTotalCitations中输入“./code/scraper”,第89行 Wrt_CitationURL =排序(部门,“CitationURL”) 文件“./code/scraper”,第15行,在排序中 SortedData = sorted(未排序,反向=真,键= lambda k:k [pivot]) 文件“./code/scraper”,第15行,in SortedData = sorted(未排序,反向=真,键= lambda k:k [pivot]) TypeError:list indices必须是整数,而不是str
我认为,几乎可以肯定,它与URLStoScrape功能有关,但我不知道如何修复它,任何帮助都会很棒。
如果需要更多信息,请告诉我
答案 0 :(得分:0)
我认为问题出在第89行,
GetTotalCitations Wrt_CitationURL = Sorting(Department, "CitationURL")
“CitationUrl”应该是整数索引,或传递给的值的值
key
中的sorted()
函数应该是字典。