【问题标题】:Python: What is returned when I use requests.get('url') and print r.text?Python:当我使用 requests.get('url') 并打印 r.text 时返回什么?
【发布时间】:2016-05-11 16:11:41
【问题描述】:

我正在尝试抓取this webpage。此代码有效:

import requests
header = {
   'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0',
}
r = requests.get('http://www.machinefinder.com/ww/en-US/categories/used-drawn-planters', headers=header)
print r.text

但我不确定它返回的文本到底是什么。我希望它是 JSON,这样我就可以复制我发现的解析 JSON 的其他示例。

注意:我的工作安全阻止了网页,并在我使用时显示“非法 Web 浏览器”

header={ 
            'Content-Type': 'application/json;charset=UTF-8', 
        } 

这就是我改用 Firefox 的原因。

【问题讨论】:

  • 检查r.headers['content-type'] 的类型。如果我不得不猜测的话,可能是text/html
  • 可以根据请求取回json

标签: python json python-requests


【解决方案1】:
>>>>type(r.text) 
<type 'unicode'>

看起来是页面的 html。你可以使用 Beautiful soup 来解析它 :https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html

【讨论】:

    【解决方案2】:

    您无法让任意网站返回 JSON 格式化数据,除非它提供了请求(并返回......)JSON 格式化数据的方法。

    r.text 通常会保存网站的源代码,除非再次明确返回JSON 数据。

    因此,您将不得不求助于其他解析网站的方法,例如 BeautifulSoup。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2014-02-12
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多