如何通过url python

时间:2018-04-18 10:03:57

标签: python python-requests xlsx

我曾经使用requests lib通过url加载单行:

import requests

def get_line(url):
    resp = requests.get(url, stream=True)
    for line in resp.iter_lines(decode_unicode=True):
        yield line

line = get_line(url)
print(next(line))

文本文件加载完美。但是,如果我想加载.xlsx,结果看起来像不可打印的符号:

PK [symbols] [Content_Types].xml [symbols]

有没有办法加载单行单元格?

1 个答案:

答案 0 :(得分:2)

您不能只阅读原始HTTP响应并寻找特定的Excel数据。为了以适当的格式获取xlsx文件内容,您需要使用适当的库。

其中一个常见库是xlrd,您可以使用pip进行安装:

sudo pip3 install xlrd

示例:

import requests
import xlrd

example_url = 'http://www.excel-easy.com/examples/excel-files/fibonacci-sequence.xlsx'
r = requests.get(example_url)  # make an HTTP request

workbook = xlrd.open_workbook(file_contents=r.content)  # open workbook
worksheet = workbook.sheet_by_index(0)  # get first sheet
first_row = worksheet.row(0)  # you can iterate over rows of a worksheet as well

print(first_row)  # list of cells

xlrd documentation

如果您希望能够逐行读取数据,则应切换到更简单的数据表示格式,例如 .csv 或简单文本文件。