将机械化与 python 结合使用
Use mechanize with python
我正在尝试使用 mechanize 打开 url,但不只是打开它并立即关闭它
我希望它打开 url 然后等待 7 分钟然后关闭 url.
我想做什么:
import mechanize
import cookielib
import time
url='http://google.com/'
op = mechanize.Browser()
cj = cookielib.LWPCookieJar()
op.set_handle_robots(False)
op.set_handle_equiv(True)
op.set_handle_referer(True)
op.set_handle_redirect(True)
op.set_cookiejar(cj)
op.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=7)
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)
time.sleep(7)
print op.geturl()
但没用。我该怎么做?
thnx.
mechanize
是一个用于执行 http request/response 的工具,只是比 urllib
.
这样的工具更像浏览器
http(在大多数情况下)是无状态的——您不会像您想象的那样让网页处于打开状态。 "open" 返回时连接已关闭。
您正在检索 Google 的主页,从 mechanize 取回表示该响应的对象,等待 7 秒,然后请求附加到响应的 url。
我做了 运行 你的代码,并且在那个程度上它有效。
set_handle_refresh
和 HTTPRefreshProcessor
会在网页有 "refresh" 元导致它在一定时间后重新加载时发挥作用。我相信您提供的参数(再次是 7 秒,而不是分钟)是机械化在刷新之间将遵守的最长时间。
但无论如何,Google 的主页不会刷新,我不认为,所以这在那里没有任何作用。
您可以查看 HTTP Keep-Alive/Persistent 连接以查看是否可以执行您想要的操作,但即使保持活动连接也不是真正从客户端 POV 保持打开状态的页面。
我正在尝试使用 mechanize 打开 url,但不只是打开它并立即关闭它 我希望它打开 url 然后等待 7 分钟然后关闭 url.
我想做什么:
import mechanize
import cookielib
import time
url='http://google.com/'
op = mechanize.Browser()
cj = cookielib.LWPCookieJar()
op.set_handle_robots(False)
op.set_handle_equiv(True)
op.set_handle_referer(True)
op.set_handle_redirect(True)
op.set_cookiejar(cj)
op.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=7)
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)
time.sleep(7)
print op.geturl()
但没用。我该怎么做?
thnx.
mechanize
是一个用于执行 http request/response 的工具,只是比 urllib
.
http(在大多数情况下)是无状态的——您不会像您想象的那样让网页处于打开状态。 "open" 返回时连接已关闭。
您正在检索 Google 的主页,从 mechanize 取回表示该响应的对象,等待 7 秒,然后请求附加到响应的 url。
我做了 运行 你的代码,并且在那个程度上它有效。
set_handle_refresh
和 HTTPRefreshProcessor
会在网页有 "refresh" 元导致它在一定时间后重新加载时发挥作用。我相信您提供的参数(再次是 7 秒,而不是分钟)是机械化在刷新之间将遵守的最长时间。
但无论如何,Google 的主页不会刷新,我不认为,所以这在那里没有任何作用。
您可以查看 HTTP Keep-Alive/Persistent 连接以查看是否可以执行您想要的操作,但即使保持活动连接也不是真正从客户端 POV 保持打开状态的页面。