添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

将html源代码转换为json对象

7 人关注

我正在从一个网站上获取许多页面的html源代码,我需要将其转换为json对象并与json doc中的其他元素相结合。我已经看到了许多关于同一主题的问题,但没有一个是有用的。

My code:

url = "https://totalhash.cymru.com/analysis/?1ce201cf28c6dd738fd4e65da55242822111bd9f"
htmlContent = requests.get(url, verify=False)
data = htmlContent.text
print("data",data)
jsonD = json.dumps(htmlContent.text)
jsonL = json.loads(jsonD)
ContentUrl='{ \"url\" : \"'+str(urls)+'\" ,'+"\n"+' \"uid\" : \"'+str(uniqueID)+'\" ,\n\"page_content\" : \"'+jsonL+'\" , \n\"date\" : \"'+finalDate+'\"}'

上面的代码给了我unicode类型,但是,当我把这个输出放在jsonLint中时,它给了我无效的json错误。谁能帮我理解一下,我怎样才能把完整的html转换成json对象?

5 个评论
尝试使用flask模块的jsonify()方法。
url的来源没有返回json。要从HTML中获取元素值,你需要使用像BeautifulSoup或lxml等的东西。
你在这里做了一些非常奇怪的事情。为什么你要转储到JSON,然后立即加载,并且 then 手动建立一个JSON字符串?
@SatishGarg 我正在使用美丽的汤进行进一步的处理,但我也在尝试保存原始的HTML。
@DanielRoseman 我是个新手,所以对我正在做的事情没有什么概念,我只是想用json格式制作。
python
json
python-requests
Umesh Kaushik
Umesh Kaushik
发布于 2017-04-18
2 个回答
cg909
cg909
发布于 2022-04-28
已采纳
0 人赞同

替换代码0】将原始HTML内容转换为JSON字符串表示。 jsonL = json.loads(jsonD) 将JSON字符串解析为普通字符串/unicode对象。这导致了一个无用的结果,因为任何由 dumps() 完成的转义都会被 loads() 还原。 jsonL 包含与 htmlContent.text 相同的数据。

尝试使用 json.dumps 来生成你的最终JSON,而不是手工构建JSON。

ContentUrl = json.dumps({
    'url': str(urls),
    'uid': str(uniqueID),
    'page_content': htmlContent.text,
    'date': finalDate
    
它像魅力一样工作。谢谢你让我更好地理解。我点击了接受答案,但不知道为什么它不工作。
Mukesh Kumar
Mukesh Kumar
发布于 2022-04-28
0 人赞同

在本地系统中将HTML源代码转换为JSON文件的正确方法如下。

import json
import codecs
# Load the JSON file by specifying the location and filename
with codecs.open(filename="json_file.json", mode="r", encoding="utf-8") as jsonf:
    json_file = json.loads(jsonf.read())
# Load the HTML file by specifying the location and filename
with codecs.open(filename="html_file.html", mode='r', encoding="utf-8") as htmlf:
    html_file = htmlf.read()
# Chose the key name where the HTML source code will live as a string
json_file['Key1']['Key2'] = html_file
# Dump the dictionary to JSON object and save it in a specific location 
json_object = json.dumps(json_file, indent=4)
with codecs.open(filename="final_json_file.json", mode="w", encoding="utf-8") as ojsonf:
    ojsonf.write(json_object)