Я использую BeautifulSoup и механизацию, чтобы найти контент с веб-страницы. Дело в том, что SOMETIMES строка, которую я ищу, не найдена. Я не знаю, что может быть проблемой
Он работал отлично в течение многих месяцев для многих веб-страниц, но внезапно он прекратил работать. Затем я должен перезапустить свою программу и надеяться на правильный результат.
Проблема заключается в data.find(text=re.compile('string to find'))
. Веб-страница всегда загружается, но строка иногда не найдена. Я думаю, проблема может заключаться в неправильном форматировании HTML
загруженной страницы? Есть идеи?
Здесь очень небольшая часть кода, с которым я работаю, и это только для вашего обзора
from BeautifulSoup import BeautifulSoup as soup
from mechanize import Browser
import sys, re
def get_page(url):
mech = Browser()
page = mech.open(url)
return page.read()
def test():
data = soup(get_page('some url'))
div_pages = data.find(text=re.compile('string to find'))
try: pager = div_pages.strip().split(' ')
except:
print div_pages
sys.exit()
print 'ok'
if __name__ == '__main__':
test()
Я помог кому-то с подобной проблемой, и это оказалось кодировкой строки. Эта ссылка (из их документов) может помочь вам в пути - Beautiful Soup дает вам Unicode, Dammit