我正在使用BeautifulSoup 4(4.3.2)解析一些相當混亂的HTML文檔,並且遇到一個問題,它會將公司名稱S&P
(Standard和Poors)或M&S
(Marks and Spencer)AT&T
轉換爲S&P;
,M&S;
和AT&T;
。因此,它想要將&[A-Z]+
模式完成爲html實體,但實際上並未使用html實體查找表,因爲&P;
不是html實體。美麗的湯將標準普爾變成標準普爾; AT&T進軍AT&T; ?
如何讓它不這樣做,或者我只是需要正則表達式匹配無效實體並將其更改回來?
>>> import bs4
>>> soup = bs4.BeautifulSoup('AT&T announces new plans')
>>> soup.text
u'AT&T; announces new plans'
>>> import bs4
>>> soup = bs4.BeautifulSoup('AT&TOP announces new plans')
>>> soup.text
u'AT⊤ announces new plans'
我試過在OSX 10.8.5的Python 2.7.5和Scientifix版Linux 6的Python上述2.7.5
你正在運行什麼版本?看起來這是4.2.0中已知的一個已在4.2.1中解決的bug:http://stackoverflow.com/a/17168523/231316 –
@ChrisHaas運行版本4.3.2 –
在Ubuntu 13.10上使用你最小的例子, bs4'4.3.2'我無法重現這個問題。 – Hooked