for link in br.links(url_regex="inquiry-results.jsp"):
cb[link.url] = link
for page_link in cb.values():
for link in br.links(url_regex="inquiryDetail.jis"):
....................
url = link.absolute_url
br.follow_link(link)
......................
br.follow_link(page_link)
Это мой код По сути, он извлекает ссылки на страницы [Link of page 1,2,3,4,5 ...] и ссылки на данные с определенной страницы. Затем он переходит в каждую ссылку на данные и извлекает некоторые данные, а после этого переходит на следующую страницу. Но я всегда получаю эту ошибку:
Traceback (most recent call last):
File "C:\python27\test.py", line 95, in <module>
for link in br.links(url_regex="inquiryDetail.jis"):
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 405, in links
mechanize._mechanize.BrowserStateError: not viewing HTML
Кто-нибудь может помочь?
3 ответа
Похоже, это связано с проверкой, является ли ответ действительным HTML:
http://github.com/jjlee/mechanize/blob/master/mechanize/_mechanize.py#L440
Возможно, в ответ вы получите его XHTML или имеет недопустимые заголовки? Может быть какой-то способ переопределить атрибут is_html
(например, здесь).
Благодаря ссылке, размещенной loevborg, я использую это:
br.open('http://example.com')
br._factory.is_html = True
Теперь br.viewing_html()
оценивается как True
Представьте ваше приложение как браузер, прежде чем br.open может помочь в этом:
br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/45.0.2454101')]
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.