免责声明:我是python的新手,所以我可能无法正确表达我的疑问 我正在尝试在python中使用Bs4来抓取请求响应的特定部分,我认为它是json格式的,如图所示。 Response Headers。但是,当我打印响应的内容时,它仅在response content所示的一行中打印,并且包含诸如” 之类的实体;和\ n,这使我无法尝试找到所需的特定部分。如何使\ n实际上执行换行符和" ;实体都转换成实际的报价,这样我就可以正确地使用Bs4刮取内容了吗?我应该在Python中使用其他刮板吗?
很抱歉,如果我的问题还不够清楚,请告诉我如何使我的疑问更清楚。
答案 0 :(得分:0)
您要打印的数据看起来像json数据。您可以尝试使用具有内置json
方法的requests
模块。这是一个示例:
# request the endpoint
>>> res = requests.get('https://httpbin.org/get')
# <Response [200]> '200' means a successful response
# use the json method so we can easily access the data
>>> data=res.json()
# grab one of the values it contains using json/dict access notation
>>> data['origin']
u'99.54.....'
此外,bs4
非常适合从站点中抓取 html 内容(例如,如果您要在此处访问此页面并从此页面中提取所有数据)。但是对于已经用json格式化的数据,则无需使用bs4
,而可以使用上面的requests
之类的东西。与html/xml
数据相比,解析json数据非常容易,因此,如果数据已经采用这种格式,那么您很幸运。您也可以使用bs4
进行解析,但这不是必需的:
import json
data=json.loads(str(soup))