机械化:打开太多值(预期2)

Cod*_*nja 6 python mechanize-python

我曾尝试编写以下代码,我正在尝试编写一个代码Python 3.7,只需打开一个Web浏览器并将网站提供给它Command Line:

Example.py

import sys

from mechanize import Browser
browser = Browser()

browser.set_handle_equiv(True)
browser.set_handle_gzip(True)
browser.set_handle_redirect(True)
browser.set_handle_referer(True)
browser.set_handle_robots(False)

# pretend you are a real browser
browser.addheaders = [('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36')]

listOfSites = sys.argv[1:]
for i in listOfSites:
    browser.open(i)
Run Code Online (Sandbox Code Playgroud)

我在以下命令中输入了以下命令cmd:

python Example.py https://www.google.com
Run Code Online (Sandbox Code Playgroud)

我有以下追溯:

Traceback (most recent call last):
  File "Example.py", line 19, in <module>
    browser.open(i)
  File "C:\Python37\lib\site-packages\mechanize\_mechanize.py", line 253, in open
    return self._mech_open(url_or_request, data, timeout=timeout)
  File "C:\Python37\lib\site-packages\mechanize\_mechanize.py", line 283, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "C:\Python37\lib\site-packages\mechanize\_opener.py", line 188, in open
    req = meth(req)
  File "C:\Python37\lib\site-packages\mechanize\_urllib2_fork.py", line 1104, in do_request_
    for name, value in self.parent.addheaders:
ValueError: too many values to unpack (expected 2)
Run Code Online (Sandbox Code Playgroud)

我很新Python.这是我的第一个代码.我坚持上面的追溯,但尚未找到解决方案.我也搜索了很多关于SO社区的问题,但他们似乎没有帮助.接下来我该怎么办?

更新:

正如@ Jean-François-Fabre所建议的,在他的回答中,我已添加'User-agent'到标题中,现在没有回溯,但仍然存在无法在浏览器中打开链接的问题.

以下是addheader现在的样子:

browser.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36')]
Run Code Online (Sandbox Code Playgroud)

han*_*olo 1

干得好 :)

import sys
from mechanize import Browser, Request


browser = Browser()

browser.set_handle_equiv(True)
browser.set_handle_gzip(True)
browser.set_handle_redirect(True)
browser.set_handle_referer(True)
browser.set_handle_robots(False)

# setup your header, add anything you want
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1', 'Referer': 'http://whateveritis.com'}


url_list = sys.argv[1:]
for url in url_list:
    request = Request(url=url, data=None, headers=header)
    response = browser.open(request)
    print(response.read())
    response.close()
Run Code Online (Sandbox Code Playgroud)