Beautifulsoup проблема с веб-скребком

1

Я использую 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()
  • 2
    Попробуйте войти на страницу, когда необходимые данные не найдены. Возможно, это проблема страницы, которую вы загружаете, а не сценария.
  • 1
    @Shawn Chin: окей, так что я понял это. этот конкретный сайт в настоящее время находится в процессе тестирования нового дизайна. я не знаю точного уравнения, но мне кажется, что одна из двадцати страниц просмотра загружена в другом дизайне, так что мои скребки не будут работать :) так что правило номер один: будь уверен, что ты скребешь!
Теги:
web-scraping
beautifulsoup
mechanize

1 ответ

0

Я помог кому-то с подобной проблемой, и это оказалось кодировкой строки. Эта ссылка (из их документов) может помочь вам в пути - Beautiful Soup дает вам Unicode, Dammit

  • 0
    спасибо за помощь, это был не случай. см. мой комментарий выше к Шону Чину о решении проблем
  • 1
    Никаких проблем - просто подумал, что я включу это на случай, если это поможет - счастливого очищения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню