Замените SRC всех элементов IMG с помощью Синтаксического анализатора

Я обычно поднимал своих конструкторов около вершины моего файла, после пакета, импорта, Javadoc, и статических разделов объявления / разделов объявления переменной экземпляра.

механизм, тактовый сигнал и скорость являются переменными класса, по-видимому, определенными за пределами конструктора где-нибудь. startCadence, startSpeed, и startGear являются также переменными, но они - параметры, переданные конструктору.

можно также видеть что-то вроде этого:

public Bicycle(int cadence, int speed, int gear) {
    this.gear = gear;
    this.cadence = cadence;
    this.speed = speed;
}

, который устанавливает переменные класса от параметров того же имени.

8
задан Kevin Guan 6 January 2016 в 01:08
поделиться

2 ответа

В стандартной библиотеке Python есть анализатор HTML, но он не очень полезен и не рекомендуется, начиная с Python 2.6. Делать такие вещи с помощью BeautifulSoup очень просто:

from BeautifulSoup import BeautifulSoup
from os.path import basename, splitext
soup = BeautifulSoup(my_html_string)
for img in soup.findAll('img'):
    img['src'] = 'cid:' + splitext(basename(img['src']))[0]
my_html_string = str(soup)
23
ответ дан 5 December 2019 в 06:53
поделиться

Вот подход к вашей проблеме с помощью pyparsing. Вам нужно будет создать свой собственный код для преобразования атрибута http src.

from pyparsing import *
import urllib2

imgtag = makeHTMLTags("img")[0]

page = urllib2.urlopen("http://www.yahoo.com")
html = page.read()
page.close()

# print html

def modifySrcRef(tokens):
    ret = "<img"
    for k,i in tokens.items():
        if k in ("startImg","empty"): continue
        if k.lower() == "src":
            # or do whatever with this
            i = i.upper() 
        ret += ' %s="%s"' % (k,i)
    return ret + " />"

imgtag.setParseAction(modifySrcRef)

print imgtag.transformString(html)

Теги конвертируются в:

<img src="HTTP://L.YIMG.COM/A/I/WW/BETA/Y3.GIF" title="Yahoo" height="44" width="232" alt="Yahoo!" />
<a href="r/xy"><img src="HTTP://L.YIMG.COM/A/I/WW/TBL/ALLYS.GIF" height="20" width="138" alt="All Yahoo! Services" border="0" /></a>
1
ответ дан 5 December 2019 в 06:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: