首页 > 解决方案 > 提交 Python 时的 Mechanicalsoup Catpcha 问题

问题描述

我正在尝试使用mechanicalsoup在python中创建一个机器人,以从以下位置刮取商标状态详细信息-

http://ipindiaonline.gov.in/eregister/Application_View.aspx

该站点基于 asp.net 技术,因此它将包含“VIEW_STATE”等其他表单参数。使用机械汤,我已经成功地自动应用到验证码页面,但是在提交没有验证码的表单后,它给出了一个对象错误(我也附上了这个错误的截图)。因为我想绕过验证码,因为mechanicalsoup不使用javascript,所以只能使用它来完成,并且在其他验证码安全网站上“我已经完成了”,但是由于创建了javascript对象“onSubmit”,我收到了这个错误"这个表格的功能。

我无法弄清楚如何模拟使其工作所需的 javascript 或任何其他解决方法。

请不要建议使用 selenium 或 phantomJS,除非它可以在没有验证码的情况下完成。

到目前为止,这是我在 python 中的基本方法/代码..

import mechanicalsoup 

baseURL = "http://ipindiaonline.gov.in"
browser = mechanicalsoup.StatefulBrowser()
browser.open(baseURL+"/eregister/Application_View.aspx")
form = browser.select_form('form[action="./Application_View.aspx"]')
browser['rdb'] = "N"
response = browser.submit_selected()
form = browser.select_form('form[action="./Application_View.aspx"]')
browser['applNumber'] = "321567"
response = browser.submit_selected()
with open("demo.html","w") as f:
  f.write(str(browser.get_current_page())) 
exit(); 

错误png -

对象引用错误图像(png)

标签: pythonasp.netbotscaptchamechanicalsoup

解决方案


MechanicalSoup 旨在帮助自动化网站上的事情,而不是绕过避免网站上出现机器人的措施,这正是您想要做的。可能有一些技术方法可以满足您的需求,但 1)它们很可能会违反网站的服务条款,并且 2)MechanicalSoup 在这里对您没有多大帮助。


推荐阅读