机械化打开Url python

时间:2014-07-23 16:38:40

标签: python python-2.7 mechanize mechanize-python

我正在尝试使用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)

2 个答案:

答案 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

中阅读这些内容