2015-05-29 10 views
6

Ich versuche, ein Formular auf dieser page mit Mechanize zu übermitteln.Fix Zeichencodierung der Webseite mit Python Mechanize

br.open("http://mspc.bii.a-star.edu.sg/tankp/run_depth.html") 
#selecting form to fill 
br.select_form(nr = 0) 
#input for the form 
br['pdb_id'] = '1atp' 
req = br.submit() 

Dies gibt jedoch die folgende Fehler

mechanize._form.ParseError: expected name token at '<! INPUT PDB FILE>\n\t' 

ich meine, diese (ref) wegen einer unangebrachten Zeichencodierung ist. Ich würde gerne wissen, wie ich das beheben kann.

Antwort

2

Ihr Problem sind einige defekte HTML comment tags, die zu einer ungültigen Website führen, die der Parser mechanization nicht lesen kann. Aber du kannst stattdessen use the included BeautifulSoup parser, was in meinem Fall funktioniert (Python 2.7.9, mechanize 0.2.5):

#!/usr/bin/env python 
#-*- coding: utf-8 -*- 
import mechanize 

br = mechanize.Browser(factory=mechanize.RobustFactory()) 
br.open('http://mspc.bii.a-star.edu.sg/tankp/run_depth.html') 
br.select_form(nr=0) 
br['pdb_id'] = '1atp' 
response = br.submit() 
Verwandte Themen