【发布时间】:2019-02-02 13:53:39
【问题描述】:
我正在使用漂亮的汤来浏览网址列表。
假设我在一个名为卫星的数组中获得了一个 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 上循环使用请求有问题吗?
【问题讨论】:
-
satellites的值是多少,特别是产生错误的那个值?r是什么?一般来说,请提供一个可重现的示例。 -
shortened:satellites = ["solarsystem.nasa.gov/missions/insight/in-depth", "solarsystem.nasa.gov/missions/mars-cube-one/in-depth", ] r 是请求模块。上述网址完美运行。但似乎在遍历列表时,请求的第二次尝试返回 None
-
我尝试在浏览器中打开每个页面。它们不存在。确保您没有使用缓存的旧版本。
-
似乎我评论中的链接在我粘贴时已更改。尝试在我的问题上复制粘贴 python 代码中的 url。如果我完全复制/粘贴它们,页面加载正确。
-
我尝试添加一个配置以不让请求保持活动状态 s = r.session() s.config['keep_alive'] = False 但仍然不行
标签: python url web-scraping beautifulsoup