我正在尝试使用python中的mechanize打开一个URL。代码执行时没有错误,但实际上没有发生任何错误。我错过了什么?另外,有没有办法设置浏览器?这是python 2.7。
import mechanize
url='http://www.google.com/'
op = mechanize.Browser() # use mecahnize's browser
op.set_handle_robots(False) #tell the webpage you're not a robot
op.open(url)
答案 0 :(得分:3)
mechanize
不使用真正的浏览器 - 它是程序化网络浏览的工具。
例如,打开网址后打印出页面标题:
>>> import mechanize
>>> url='http://www.google.com/'
>>> op = mechanize.Browser()
>>> op.set_handle_robots(False)
>>> op.open(url)
<response_seek_wrapper at 0x10247ebd8 whose wrapped object = <closeable_response at 0x102479a70 whose fp = <socket._fileobject object at 0x101903950>>>
>>> op.title()
'Google'
以下是有关如何提交Google搜索表单的跟进信息:
import mechanize
url='http://www.google.com/'
op = mechanize.Browser()
op.set_handle_equiv(True)
op.set_handle_gzip(True)
op.set_handle_redirect(True)
op.set_handle_referer(True)
op.set_handle_robots(False)
# pretend you are a real browser
op.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
op.open(url)
op.select_form(nr=1)
op.form['q'] = 'Does mechanize use a real browser?'
op.submit()
print op.geturl()
打印:
http://www.google.com/search?hl=en&source=hp&q=Does+mechanize+use+a+real+browser%3F&btnG=Google+Search&gbv=1
答案 1 :(得分:1)
如果你的目标是在实际的网络浏览器中打开一个页面,我建议你不要使用mechanize
,而是使用Python 2.7中默认包含的webbrowser
模块。命令
>>> import antigravity
可在浏览器中打开http://xkcd.com/353/。这个笑话模块的代码是
import webbrowser
webbrowser.open("http://xkcd.com/353/")
有许多选项可用于自定义行为,包括可用的浏览器打开。您可以在webbrowser
docs。