首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python RoboBrowser自动搜索功能

Python RoboBrowser自动搜索功能
EN

Stack Overflow用户
提问于 2015-06-05 05:01:37
回答 1查看 1.6K关注 0票数 3

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

代码语言:javascript
复制
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)

代码语言:javascript
复制
line 16, in <module>
    form["searchval"].value = "Beethoven Opus 131"
TypeError: 'NoneType' object is not subscriptable

为什么我在这里得到NoneType错误?我知道之前没有定义这个变量,但也没有用Duckduckgo定义。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2015-06-05 05:16:44

首先,您正在错误地定位form。带有id="searchInput"的元素是一个input元素,而您需要一个form元素-它有id="searchform"

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

代码语言:javascript
复制
form = browser.get_form(id="searchform")
form["search"].value = "Beethoven Opus 131"
browser.submit_form(form, submit=form.submit_fields['go'])

对我很管用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30654076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档