Python RoboBrowser自动搜索功能

Python RoboBrowser自动搜索功能,python,web-scraping,robobrowser,Python,Web Scraping,Robobrowser,这个代码有什么问题?它与duckduckgo.com合作,但不与谷歌、维基百科或雅虎合作。是的,我正在根据特定网站更改id import re from robobrowser import RoboBrowser browser = RoboBrowser() browser.open("https://en.wikipedia.org/wiki/Wikipedia") # Must find the proper id in the html form = browser.get_fo

这个代码有什么问题?它与duckduckgo.com合作,但不与谷歌、维基百科或雅虎合作。是的,我正在根据特定网站更改id

import re
from robobrowser import RoboBrowser

browser = RoboBrowser() 
browser.open("https://en.wikipedia.org/wiki/Wikipedia")

# Must find the proper id in the html
form = browser.get_form(id = "searchInput")
form

form["searchval"].value = "Beethoven Opus 131"
browser.submit_form(form)

links = browser.get_links()

for link in links:
    print(link)

print("Le Fin.")
我每次都会遇到以下错误(duckduckgo.com除外)

第16行,在
表格[“searchval”].value=“贝多芬作品131”
TypeError:“非类型”对象不可下标

为什么这里出现
NoneType
错误?我知道变量之前没有定义,但Duckduckgo也没有定义。请帮助。

首先,您的
表单定位不正确。带有
id=“searchInput”
的元素是
input
元素,而您需要
form
元素-它具有
id=“searchform”

此外,由于有2个提交按钮,您需要让
robobrowser
使用哪一个按钮:

form = browser.get_form(id="searchform")
form["search"].value = "Beethoven Opus 131"
browser.submit_form(form, submit=form.submit_fields['go'])
为我工作

form = browser.get_form(id="searchform")
form["search"].value = "Beethoven Opus 131"
browser.submit_form(form, submit=form.submit_fields['go'])