2015-05-29 25 views
6

Bu page üzerinde Mechanize kullanarak bir form göndermeye çalışıyorum.Python kullanarak Web sayfasının karakter kodlamasını düzeltme Mekanizması

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

Bu ancak bunun nedeni bazı yersiz karakter kodlaması (ref) taşımaktadır anlamaya aşağıdaki hatayı

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

verir. Bunu nasıl düzelteceğimi bilmek isterim.

cevap

2

Sorununuz bozuk HTML comment tags, bozuk bir makineyi okuyamayan geçersiz bir web sitesine götüren bozuk. Ancak benim durumumda çalışan use the included BeautifulSoup parser olabilirsiniz (Python 2.7.9, mekanikleştir 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()