Превращение текста в словарь - PullRequest
0 голосов
/ 14 января 2020

Я успешно извлек свою карту сайта, и я хотел бы превратить 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')

Выходные данные в основном представляют собой строку с отметкой даты, пробелом и URL-адресом.

Ответы [ 2 ]

0 голосов
/ 14 января 2020

В дополнение к ответу выше: Вы также можете использовать XML Parser (стандартный модуль) для достижения того, что вы пытаетесь сделать:

# 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])
0 голосов
/ 14 января 2020

Сначала вы можете разделить текст вокруг пробелов, а затем действовать следующим образом:

text = text.split(' ')
dicto = {}
for i in range(0, len(text), 2):
    dicto[text[i+1]] = text[i]

дает словарь с меткой времени в качестве ключа и URL-адресом в качестве значения, следующим образом:

{
 '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/'
}

Я полагаю, что вы можете продолжить дальнейшую обработку.

...