2010-08-12 25 views
6
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) 

Đây là mã của tôi. Về cơ bản, nó trích xuất các liên kết trang [Liên kết của trang 1,2,3,4,5 ...] và các liên kết dữ liệu từ trang cụ thể. Sau đó, nó đi vào mỗi liên kết dữ liệu và trích xuất một số dữ liệu và khi thực hiện nó chuyển sang trang tiếp theo. Nhưng tôi luôn gặp lỗi này:Lỗi trong Python Cơ chế - "mechanize._mechanize.BrowserStateError: không xem HTML"

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 

Có ai giúp được không?

Trả lời

2

này dường như có liên quan đến một tấm séc để xem câu trả lời là HTML hợp lệ:

http://github.com/jjlee/mechanize/blob/master/mechanize/_mechanize.py#L440

Có lẽ câu trả lời bạn nhận được nó XHTML, hoặc có tiêu đề không hợp lệ? Có thể có một số cách để ghi đè thuộc tính is_html (như here).

+0

Có ai đó đã tìm thấy cách chức năng twill này chuyển thành Cơ chế hóa không? –

6

Nhờ vào liên kết đăng bởi loevborg, tôi đã sử dụng này:

br.open('http://example.com') 
br._factory.is_html = True 

Bây giờ br.viewing_html() sẽ đánh giá là True

0

giới thiệu ứng dụng của bạn như một trình duyệt trước khi br.open có thể giúp này:

br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/45.0.2454101')] 
Các vấn đề liên quan