2015-05-29 29 views
6

我正尝试使用Mechanize在此page上提交一个表单。使用python修复网页的字符编码机械化

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() 

然而,这提供了以下错误

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

我想,这是因为一些错位的字符编码(ref)。我想知道如何解决这个问题。

回答

2

你的问题是一些中断HTML comment tags,导致一个无效的网站机械化的解析器无法读取。但你可以代替use the included BeautifulSoup parser,这在我的情况下工作(Python 2.7.9,机械化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()