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)
干得好 :)
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)