gpt4 book ai didi

Python Mechanize - 如何在单个 .open() 调用上添加 header ?

转载 作者:太空狗 更新时间:2023-10-30 02:12:58 25 4
gpt4 key购买 nike

我试图绕过某个没有 API 的服务,并决定尝试 Mechanize(我通常使用 urllib)。

如何为一个 open 调用添加特定的 header ?

或者有没有办法构造一个带有自己的 header 的 Request 实例,然后让我的 mechanize.Browser 实例处理它?<​​/p>

browser = mechanize.Browser()
headers = [
('Accept', 'text/javascript, text/html, application/xml, text/xml, */*'),
('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8'),
('User-Agent', 'Foobar'),
]

browser.addheaders = headers
# log in, do stuff, etc.

# here, for this one browser request, I need to add an AJAX header
browser.open('/a_url_to_ajax_post/', urllib.urlencode({'foo': 'bar'}))

我的解决方法是临时修改 addheaders 列表,但这太丑了!

browser.addheaders.append(AJAX_HEADER)
browser.open('/admin/discounts', urllib.urlencode(pulled_params))
browser.addheaders.pop()

最佳答案

这样做:

import mechanize
import urllib2

browser = mechanize.Browser()

# 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 = "http://google.com"

# wrap the request. You can replace None with the needed data if it's a POST request
request = urllib2.Request(url, None, header)

# here you go
response = browser.open(request)

print response.geturl()
print response.read()
response.close()

关于Python Mechanize - 如何在单个 .open() 调用上添加 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com