Когда я читаю некоторые (но не все) HTML-файлы в python, используя открыватель urllib2, в некоторых файлах я получаю текст, заполненный множеством обратных косых черт и строк unicode 003c. Я отправляю этот текст в BeautifulSoup, и мне не удается найти то, что я ищу, с помощью findAll (), и теперь я думаю, что это связано со всеми этими строками Unicode.
Что происходит с этим, и как мне от него избавиться?
Подходы, такие как 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 = "USERNAME@gmail.com"
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