从谷歌文档电子表格python中读取URL

时间:2013-08-09 10:42:35

标签: python google-docs-api google-spreadsheet-api

我正在尝试阅读我在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等等。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如你所说,newlist是最后一个网址,所以当你要求索引时,你会得到单独的字母。您需要在循环之前创建一个列表,然后将每个网址附加到它,而不是将urls设置为每个网址的文本:

urls = []
for row in rows:
    for key in row.custom:
        urls.append(row.custom[key].text)

现在urls是一个列表,其中每个元素都是一个URL。