當我使用urllib2打開器讀取python中的一些(但不是全部)HTML文件時,在某些文件中,我得到的文本中充滿了大量反斜槓和unicode 003c字符串。我將這段文本發送到BeautifulSoup,並且無法通過findAll()查找我正在尋找的內容,現在我認爲這是由於所有這些unicode字符串造成的。如何翻譯/轉換unicode轉義< and >在閱讀HTML文檔?
這是怎麼回事,我該如何擺脫它?
類似soup.prettify()的方法沒有效果。
下面是一些示例代碼(這是來自Facebook的個人資料)
\\u003cdiv class=\\"pas status fcg\\">Loading...\\u003c\\/div>
\\u003c\\/div>\\u003cdiv class=\\"uiTypeaheadView fbChatBuddyListTypeaheadView dark hidden_elem\\" id=\\"u971289_14\\">\\u003c\\/div>
\\u003c\\/div>\\u003c\\/div>\\u003cdiv class=\\"fbNubFlyoutFooter\\">
\\u003cdiv class=\\"uiTypeahead uiClearableTypeahead fbChatTypeahead\\" id=\\"u971289_15\\">
\\u003cdiv class=\\"wrap\\">\\u003clabel class=\\"clear uiCloseButton\\" for=\\"u971291_21\\">
此相同的HTML網頁的外觀罰款和正常的「查看源文件」窗口。
編輯:這是產生該文本的代碼。奇怪的是,我沒有從其他HTML頁面獲得這種輸出。請注意,我用USERNAME和PASSWORD替換了用戶名和密碼。如果您替換這兩個,您可以在您自己的FB配置文件中嘗試此操作。
fbusername = "[email protected]"
fbpassword = "PASSWORD"
cookiefile = "facebook.cookies"
cj = cookielib.MozillaCookieJar(cookiefile)
if os.access(cookiefile, os.F_OK):
cf.load()
opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel=0),
urllib2.HTTPSHandler(debuglevel=0),
urllib2.HTTPCookieProcessor(cj)
)
opener.addheaders = [('User-agent','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1'),('Referer','http://www.facebook.com/')]
def facebooklogin():
logindata = urllib.urlencode({
'email' : fbusername,
'pass' : fbpassword,
})
response = opener.open("https://login.facebook.com/login.php",logindata)
return ''.join(response.readlines())
print "Logging in to Facebook...\n"
facebooklogin()
facebooklogin()
print "Successful.\n"
fetchURL = 'http://www.facebook.com/USERNAME?ref=profile&v=info'
f = opener.open(fetchURL)
fba = f.read()
f.close()
soup = BeautifulSoup(fba)
print soup
發佈生成此文本的代碼。 –
嘗試: 'unicodeTextFromUrlLib.encode( 「ASCII」, 「忽略」)' 什麼,我想說的是: '>>> S = U 「\ u003c」 >>>小號 U '<' >>> s.encode( 「ASCII」, 「忽略」) '<' ' –