如何为我的Python urllib打开器添加这些头部?

3 投票
3 回答
8969 浏览
提问于 2025-04-17 19:21
headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'X-Requested-With': 'XMLHttpRequest',
    'Referer': 'http://www.namestation.com/domain-search?autosearch=1',
    'Origin': 'http://www.namestation.com',
    'Host': 'www.namestation.com',
    'Content-Type': 'application/json; charset=UTF-8',
    'Connection': 'keep-alive'
}
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

opener.addHeaders(headers) 是一个方法,用来给请求添加一些额外的信息,比如说你想告诉服务器你支持什么格式的数据,或者你是谁。这些信息通常被称为“头部信息”。

3 个回答

1

你应该先把字典转换成元组。

opener.addHeaders=tuple(items for items in headers.items())

6

你的开头部分应该有一个叫做 addheaders 的属性,这个属性是一个元组的列表。默认情况下,它里面包含了用户代理的信息。

opener.addheaders.append(('Host', 'www.namestation.com'))
3

像这样可能会有效:

def opener():
    cj=cookielib.CookieJar()
    #Process Hadlers
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    opener.addheaders=[
                    ('Accept', 'application/json, text/javascript, */*; q=0.01'),
                    ('X-Requested-With', 'XMLHttpRequest'),
                    ('Referer', 'http://www.namestation.com/domain-search?autosearch=1'),
                    ('Host', 'www.namestation.com'),
                    ('Content-Type', 'application/json; charset=UTF-8'),
                    ('Connection', 'keep-alive'),
                ]
    return opener

撰写回答