2015-03-13 2 views
1

Я, кажется, ударил стену своим сценарием. Я пытаюсь заставить его захватить текст комментария с веб-сайта и добавить некоторые основные теги XML. Он захватывает все на странице, и это нужно исправлять, но это вторичная проблема. Я получил сценарий, чтобы разделить текст на главы, но я не могу понять, как дальше разделить его на стихи. Я пытаюсь заменить каждое появление «Verse» в главе с </verse><verse name = "n">, причем «n» является номером стиха. Я пробовал несколько вещей, в том числе для циклов и ElementTree, но это либо не работает, либо делает каждое имя стиха одинаковым.петли и замена в python

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

x = "Verse" 
    for x in para: 
     para = para.replace (x, '</verse><verse name = " ' +str(n+1) + ' " >' ) 
     n = n + 1 

ниже код, кажется, самый ... функционал, который я сумел сделать это , Любые советы о том, как я должен это исправить или что еще я могу попробовать?

from lxml import html 
import requests 
name = open("new.txt", "a") 
name.write("""<?xml version="1.0"?>""") 
name.write("<data>") 
n = 0 
for i in range(0, 17): 
    url_base = "http://www.studylight.org/commentaries/acc/view.cgi?bk=45&ch=" 
    url_norm = url_base + str(i) 
    page = requests.get(url_norm) 
    tree = html.fromstring(page.text) 
    para = tree.xpath('/html/body/div[2]//table//text()') 
    name.write("<chapter name =\"" + str(i) + "\" >") 
    para = str(para) 
    para = para.replace("&", " ") 
    para = para.replace ("Verse", '</verse><verse name = " ' +str(n+1) + ' " >' ) 
    name.write(str(para)) 
    name.write("</chapter>") 
name.write("</data>") 
name.close() 
print "done" 

ответ

0

вы не должны быть изменения текстов, при манипулировании Xhtml использования документа xslt