ошибка при загрузке файла с Beautifulsoup - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь загрузить некоторые файлы из бесплатного набора данных с помощью Beautifulsoup. Я повторяю тот же процесс для двух похожих ссылок на веб-странице.

Это адрес страницы.

import requests
from bs4 import BeautifulSoup

first_url = "http://umcd.humanconnectomeproject.org/umcd/default/download/upload_data.region_xyz_centers_file.bcf53cd53a90f374.55434c415f43434e5f41504f455f4454495f41504f452d335f355f726567696f6e5f78797a5f63656e746572732e747874.txt" 
second_url="http://umcd.humanconnectomeproject.org/umcd/default/download/upload_data.connectivity_matrix_file.bfcc4fb8da90e7eb.55434c415f43434e5f41504f455f4454495f41504f452d335f355f636f6e6e6563746d61742e747874.txt"
# labeled as Connectivity Matrix File in the webpage
def download_file(url, file_name):
    myfile = requests.get(url)
    open(file_name, 'wb').write(myfile.content)

download_file(first_url, "file1.txt")
download_file(second_url, "file2.txt")

выходные файлы:

file1.txt:
50.118248 53.451775 39.279296 
51.417612 67.443649 41.009074 
...
file2.txt
<html><body><h1>Internal error</h1>Ticket issued: <a href="/admin/default/ticket/umcd/89.41.15.124.2020-04-30.01-59-18.c02951d4-2e85-4934-b2c1-28bce003d562" target="_blank">umcd/89.41.15.124.2020-04-30.01-59-18.c02951d4-2e85-4934-b2c1-28bce003d562</a></body><!-- this is junk text else IE does not display the page: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx //--></html>

, но я могу загрузить second_url из браузера chrome правильно (содержит несколько чисел). Я попытался установить user-agent

headers = {'User-Agent': "Chrome/6.0.472.63 Safari/534.3"}
r = requests.get(url, headers=headers)

, но не сработало.

Редактировать Для получения данных сайту не требуется вход в систему. Я открыл страницу в браузере частного режима, затем загрузил файл в second_url. Прямое копирование second_url в адресной строке дало ошибку:

Internal error
Ticket issued: umcd/89.41.15.124.2020-04-30.03-18-34.49c8cb58-7202-4f05-9706-3309b581af76

Есть идеи? Заранее спасибо за любое руководство.

1 Ответ

0 голосов
/ 30 апреля 2020

Это не проблема Python. Второй URL дает одинаковую ошибку как в Curl, так и в моем браузере.

Странно для меня, кстати, второй URL будет короче. Вы уверены, что скопировали это правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...