我正在尝试阅读我在google docs上的URL列表。我想要做的是从谷歌doc电子表格中读取URL,然后刮取每个URL。
import gdata.docs.data
import gdata.docs.client
import gdata.docs.service
import gdata.spreadsheet.service
import re, os
username = 'myemail.nuigalway@gmail.com'
password = 'mypassword'
doc_name = 'My document'
gd_client = gdata.spreadsheet.service.SpreadsheetsService()
gd_client.email = username
gd_client.password = password
gd_client.source = 'https://docs.google.com/spreadsheet/ccc? key=0AkGb10ekJtfQdG9EOHN0VzRDdVhWaG1kNVEtdVpyRlE#gid=0'
gd_client.ProgrammaticLogin()
q = gdata.spreadsheet.service.DocumentQuery()
q['title'] = doc_name
q['title-exact'] = 'true'
feed = gd_client.GetSpreadsheetsFeed(query=q)
spreadsheet_id = feed.entry[0].id.text.rsplit('/',1)[1]
feed = gd_client.GetWorksheetsFeed(spreadsheet_id)
worksheet_id = feed.entry[0].id.text.rsplit('/',1)[1]
rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry
for row in rows:
for key in row.custom:
urls = row.custom[key].text
newlist = urls
print 'this is a list', newlist
elec_urls = newlist.strip()
#After this each the Url in the list is scraped using scraperwiki
如果我在spredsheet中只有一个URL,这样可以正常工作,我没有,当我在文档中有多个URL时,程序只会抓取最后一个Url。
我认为使用循环可以解决这个问题,从newlist [0]循环到newlist [i],但发现newlist [0]是= http到http://(URL)最后输入的网址和新列表[1] = t等等。
任何帮助将不胜感激。
答案 0 :(得分:0)
如你所说,newlist
是最后一个网址,所以当你要求索引时,你会得到单独的字母。您需要在循环之前创建一个列表,然后将每个网址附加到它,而不是将urls
设置为每个网址的文本:
urls = []
for row in rows:
for key in row.custom:
urls.append(row.custom[key].text)
现在urls
是一个列表,其中每个元素都是一个URL。