【问题标题】:Reading URL's from google docs spreadsheet python从谷歌文档电子表格python中读取URL
【发布时间】:2013-08-09 10:42:34
【问题描述】:

我正在尝试阅读我在 google 文档上的 URL 列表。我想要做的是从谷歌文档电子表格中读取 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 

如果我在电子表格中只有一个 URL,这可以正常工作,但我没有,当我在文档中有多个 URL 时,程序只会抓取最后一个 URL。

我认为使用循环可以解决从 newlist[0] 到 newlist[i] 循环的问题,但发现 newlist[0] = to h of the h t t p://(URL) Last enters urls and newlist [1]= t 等等。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    正如您所说,newlist 是最后一个 URL,因此当您询问其索引时,您自然会得到单个字母。您需要在循环之前创建一个列表,然后将每个 url 附加到它,而不是将 urls 设置为每个的文本:

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

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

    【讨论】:

    • 啊应该已经看到了......我的大脑今天不工作了,谢谢伙计
    猜你喜欢
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多