Python: второй URL в списке URL-адресов возвращает None - PullRequest
0 голосов
/ 28 августа 2018

Я перебираю список URL, используя красивый суп.

скажем, я получил список URL-адресов в массиве, названном спутниками

from bs4 import BeautifulSoup as bs
import pandas as p
import numpy as np
import requests as r
import json

satellites = [
"https://solarsystem.nasa.gov/missions/insight/in-depth/",
"https://solarsystem.nasa.gov/missions/mars-cube-one/in-depth/",
"https://solarsystem.nasa.gov/missions/osiris-rex/in-depth/",
"https://solarsystem.nasa.gov/missions/exomars-trace-gas-orbiter/in-depth/",
"https://solarsystem.nasa.gov/missions/hayabusa-2/in-depth/"]

# Then my code starts with:

for sat in satellites:
    print(sat)
    page = r.get(sat)
    print("got page")
    soup = bs(page.content, "html.parser")
    print("got soup")

получение содержимого страницы работает для первого URL, но второе возвращает None, что дает мне трассировку «None» не имеет атрибута «content».

Я поменял первый и второй URL, и результат тот же. Все URL были проверены на правильность, и они являются.

есть ли проблема с использованием запросов в цикле по URL-адресам?

1 Ответ

0 голосов
/ 30 августа 2018

Итак, изучив документы библиотеки Requests, я обнаружил Session (), который поддерживает один сеанс Requests в течение всего сценария.

Попробовал и работает нормально.

Итак

Запросы на импорт как r

s = r.Session ()

спутников = [...]

для спутников в спутниках: s.get (сел)

Выше не возвращается None, если что-то случится. Кажется, использование Requests.get ('') напрямую имеет проблемы на некоторых платформах. Мой в настоящее время Mac OS High Sierra. если кто-то, кто сказал, что у него нет проблем, работает в Linux, это может зависеть от платформы, но я не могу спекулировать.

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