【发布时间】:2020-01-17 22:19:30
【问题描述】:
一位论坛用户建议我,为了避免被发现,我需要维护 与我的浏览器相同的标题顺序。 我在这里查看了建议:
Python HTTP request with controlled ordering of HTTP headers
但是,尽管尝试了这些建议,但顺序正在发生变化。 我不知道我做错了什么(请注意 cookie 最终会出现):
import requests
import webbrowser
from bs4 import BeautifulSoup
import re
from collections import OrderedDict
BASE_URL = 'https://www.bloomberg.com/'
HEADERS = OrderedDict({'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Cookie': '',
'Host': 'www.bloomberg.com',
'Origin' : 'https://www.bloomberg.com',
'Referer': 'https://www.bloomberg.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0',
})
def latest_news():
session = requests.Session()
session.headers = HEADERS
## session.headers['User-Agent'] = HEADERS['User-Agent']
## session.headers['Referer'] = HEADERS['Referer']
## #session.headers['Origin'] = HEADERS['Origin']
## session.headers['Host'] = HEADERS['Host']
page = session.get(BASE_URL, allow_redirects = True)
print(page.url)
print(page.request.headers)
print(page.history)
page.raise_for_status()
soup = BeautifulSoup(page.content, 'html.parser')
print(soup)
if __name__ == "__main__":
latest_news()
输出:
https://www.bloomberg.com/tosv2.html?vid=&uuid=e5737f50-3975-11ea-b7bd-97b9265w12w5&url=Lw==
#Request Headers
{'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Host': 'www.bloomberg.com',
'Origin': 'https://www.bloomberg.com',
'Referer': 'https://www.bloomberg.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0)
Gecko/20100101 Firefox/64.0',
'Cookie': '_pxhd=4c7cs06d7c42as40601e7d338a1084ca96e4ee91dfa42bd2368e86fec4e66bcd1:e573a66d0-397x5-11ea-b7bd-97b9265412f5'}
[<Response [307]>]
<h1 class="logo">Bloomberg</h1>
【问题讨论】:
标签: python web-scraping python-requests