这段代码有什么问题?它可以与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)
line 16, in <module>
form["searchval"].value = "Beethoven Opus 131"
TypeError: 'NoneType' object is not subscriptable为什么我在这里得到NoneType错误?我知道之前没有定义这个变量,但也没有用Duckduckgo定义。请帮帮忙。
发布于 2015-06-05 05:16:44
首先,您正在错误地定位form。带有id="searchInput"的元素是一个input元素,而您需要一个form元素-它有id="searchform"。
此外,由于有两个提交按钮,您需要让robobrowser使用哪个按钮:
form = browser.get_form(id="searchform")
form["search"].value = "Beethoven Opus 131"
browser.submit_form(form, submit=form.submit_fields['go'])对我很管用。
https://stackoverflow.com/questions/30654076
复制相似问题