import mechanize
url = 'http://steamcommunity.com'
br=mechanize.Browser(factory=mechanize.RobustFactory())
br.open(url)
print br.request
print br.form
for each in br.forms():
print each
print
Приведенные выше результаты кода в:Как сделать механизацию не с помощью форм на этой странице?
Traceback (most recent call last):
File "./mech_test.py", line 12, in <module>
for each in br.forms():
File "build/bdist.linux-i686/egg/mechanize/_mechanize.py", line 426, in forms
File "build/bdist.linux-i686/egg/mechanize/_html.py", line 559, in forms
File "build/bdist.linux-i686/egg/mechanize/_html.py", line 228, in forms
mechanize._html.ParseError
Моя конкретная цель заключается в использовании форму входа в систему, но я не могу даже получить механизировать, чтобы признать, что есть какие-либо формы. Даже используя то, что я думаю, является самым основным методом выбора любой формы, br.select_form(nr=0)
, результаты аналогичны. Enctype формы - это multipart/form-data, если это имеет значение.
Я думаю, что все сводится к вопросу о двух частях: как я могу получить механизацию для работы с этой страницей, или если это невозможно, что еще нужно при сохранении файлов cookie?
Редактировать: Как указано ниже, это перенаправляется на 'https://steamcommunity.com'.
Mechanize может успешно извлечения HTML, как можно увидеть с помощью следующего кода:
url = 'https://steamcommunity.com'
hh = mechanize.HTTPSHandler() # you might want HTTPSHandler, too
hh.set_http_debuglevel(1)
opener = mechanize.build_opener(hh)
response = opener.open(url)
contents = response.readlines()
print contents
Я забудьте добавить, что информация, спасибо. К сожалению, добавление строки, которую вы упоминаете, ничего не меняет. –