Arhn - архитектура программирования

Python 3 Urlopen против Urlretreive

Я работаю над скриптом для загрузки и обработки исторических цен на акции. Когда я использовал urllib.request.urlopen, я получил странный префикс текста в каждом файле (b'\xef\xbb\xbf), которого не было ни при использовании urllib.request.urlretrieve, ни при вводе URL-адреса в браузер (Файрфокс). Итак, у меня есть ответ, но я не знаю, почему это вызвало проблему в первую очередь. Я подозреваю, что это может быть из-за того, что я заставил его быть строкой, но я не знаю, почему это так и как я мог бы обойти это (кроме использования вместо этого urlretrieve). Код ниже. Соответствующая строка — строка 11. Код с комментариями после — это когда я использовал orlopen.

    #download a bunch of historical stock quotes from google finance

import urllib.request
symbolarray = []
symbolfile = open("symbols.txt")
for line in symbolfile:
    symbolarray.append(line.strip())
symbolfile.close()

for symbol in symbolarray:
    page = urllib.request.urlretrieve("http://www.google.com/finance/historical?q=NYSE:"+symbol+"&output=csv",symbol+".csv")
    #datafile = open(symbol+".csv","w")
    #datafile.write(str(page.read()))
    #datafile.close()

Ответы:


1

0xEF,0xBB,0xBF — это спецификация для utf-8. Это означает, что это строка в кодировке utf-8. Я предполагаю, что если вы используете wireshark, вы увидите, что он был там все время. Просто большинство программ его игнорируют.

Вместо str(page.read()) вам следует попробовать page.read().decode('utf-8-sig'), если вы хотите удалить спецификацию. Если вы хотите сохранить его, вы можете декодировать только с помощью «utf-8».

04.03.2011
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..