错误403:请求被禁止机器人.txt在Python上

2024-05-17 08:45:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python上使用mechanize填充表单。当我运行代码时,我得到一个错误:

Error 403:request disallowed by robots.txt.

我浏览了前面回答的问题,发现添加br.set_handle_robots(False)应该可以修复它,但是我仍然得到相同的错误。那么我在这里遗漏了什么?在

import re
import mechanize
from mechanize import Browser
br = mechanize.Browser()
br.set_handle_equiv(False)
br.set_handle_robots(False)
br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64; rv:18.0)Gecko/20100101 Firefox/18.0 (compatible;)'),('Accept', '*/*')]
text = "1500103233"
browser = Browser()
browser.open("http://kuhs.ac.in/results.htm")
browser.select_form(nr=0)
browser['Stream']=['Medical']
browser['Level']=['UG']
browser['Course']=['MBBS']
browser['Scheme']=['MBBS 2015 Admissions']
browser['Year']=['Ist Year MBBS']
browser['Examination']=['First Professional MBBS Degree Regular(2015 Admissions) Examinations,August2016']
browser['Reg No']=text
response = browser.submit()

Tags: textbrimportbrowserfalse表单错误year
1条回答
网友
1楼 · 发布于 2024-05-17 08:45:59
  1. 你设置了br = mechanize.Browser(),然后又设置了browser = Browser()?在
  2. 链接:http://kuhs.ac.in/results.htm如果您可以从页面源代码看到,那么源代码是:src="http://14.139.185.148/kms/index.php/results/create"
  3. 从页面源可以看到表单的名称。在您的例子中,Stream</label是{}

所以,你可以试试这个:

import mechanize
br = mechanize.Browser()
br.set_handle_equiv(False)
br.set_handle_robots(False)
br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64; rv:18.0)Gecko/20100101 Firefox/18.0 (compatible;)'),('Accept', '*/*')]
text = "1500103233"
br.open("http://14.139.185.148/kms/index.php/results/create").read()
for forms in br.forms():
    print forms
br.select_form(nr=0)
br['Results[streamId]']=['1',] #Medical
#etc..
response = br.submit()
print response.read()

您可以在这里看到:Submitting a form with mechanize (TypeError: ListControl, must set a sequence)

希望这有帮助,对我有用!在

相关问题 更多 >