将文本变成字典
Turning text into a dictionary
我已经成功提取了我的站点地图,我想将 url 变成一个列表。我不太清楚该怎么做,将 https 与修改日期分开。理想情况下,我还想把它变成一本带有相关日期戳的字典。最后,我打算遍历列表并创建网页的文本文件,并将日期时间戳保存在文本文件的顶部。
我将满足于将其转化为列表的下一步。这是我的代码:
import urllib.request
import inscriptis
from inscriptis import get_text
sitemap = "https://grapaes.com/sitemap.xml"
i=0
url = sitemap
html=urllib.request.urlopen(url).read().decode('utf-8')
text=get_text(html)
dicto = {text}
print(dicto)
for i in dicto:
if i.startswith ("https"):
print (i + '/n')
输出基本上是带有日期戳的行,space 和 url。
您可以先在空格周围拆分文本,然后这样操作:
text = text.split(' ')
dicto = {}
for i in range(0, len(text), 2):
dicto[text[i+1]] = text[i]
给出一个以timestamp为key,URL为value的字典,如下:
{
'2020-01-12T09:19+00:00': 'https://grapaes.com/',
'2020-01-12T12:13+00:00': 'https://grapaes.com/about-us-our-story/',
...,
'2019-12-05T12:59+00:00': 'https://grapaes.com/211-retilplast/',
'2019-12-01T08:29+00:00': 'https://grapaes.com/fruit-logistica-berlin/'
}
我相信你可以从这里开始做进一步的处理。
除了上面的答案:您还可以使用 XML 解析器(标准模块)来实现您想要做的事情:
# Save your xml on disk
with open('sitemap.xml', 'w') as f:
f.write(text)
f.close()
# Import XML-Parser
import xml.etree.ElementTree as ET
# Load xml and obtain the root node
tree = ET.parse('sitemap.xml')
root_node = tree.getroot()
从这里您可以访问 xml 的节点,就像其他所有类似列表的对象一样:
print(root_node[1][0].text) # output: 'https://grapaes.com/about-us-our-story/'
print(root_node[1][1].text) # output: '2020-01-12T12:13+00:00'
由此创建字典就这么简单:
dicto = dict()
for child in root_node:
dicto.setdefault(child[0], child[1])
我已经成功提取了我的站点地图,我想将 url 变成一个列表。我不太清楚该怎么做,将 https 与修改日期分开。理想情况下,我还想把它变成一本带有相关日期戳的字典。最后,我打算遍历列表并创建网页的文本文件,并将日期时间戳保存在文本文件的顶部。
我将满足于将其转化为列表的下一步。这是我的代码:
import urllib.request
import inscriptis
from inscriptis import get_text
sitemap = "https://grapaes.com/sitemap.xml"
i=0
url = sitemap
html=urllib.request.urlopen(url).read().decode('utf-8')
text=get_text(html)
dicto = {text}
print(dicto)
for i in dicto:
if i.startswith ("https"):
print (i + '/n')
输出基本上是带有日期戳的行,space 和 url。
您可以先在空格周围拆分文本,然后这样操作:
text = text.split(' ')
dicto = {}
for i in range(0, len(text), 2):
dicto[text[i+1]] = text[i]
给出一个以timestamp为key,URL为value的字典,如下:
{
'2020-01-12T09:19+00:00': 'https://grapaes.com/',
'2020-01-12T12:13+00:00': 'https://grapaes.com/about-us-our-story/',
...,
'2019-12-05T12:59+00:00': 'https://grapaes.com/211-retilplast/',
'2019-12-01T08:29+00:00': 'https://grapaes.com/fruit-logistica-berlin/'
}
我相信你可以从这里开始做进一步的处理。
除了上面的答案:您还可以使用 XML 解析器(标准模块)来实现您想要做的事情:
# Save your xml on disk
with open('sitemap.xml', 'w') as f:
f.write(text)
f.close()
# Import XML-Parser
import xml.etree.ElementTree as ET
# Load xml and obtain the root node
tree = ET.parse('sitemap.xml')
root_node = tree.getroot()
从这里您可以访问 xml 的节点,就像其他所有类似列表的对象一样:
print(root_node[1][0].text) # output: 'https://grapaes.com/about-us-our-story/'
print(root_node[1][1].text) # output: '2020-01-12T12:13+00:00'
由此创建字典就这么简单:
dicto = dict()
for child in root_node:
dicto.setdefault(child[0], child[1])