Python 抓取并读取带有请求的加密返回值

Wol*_*Ves 2 python encryption web-scraping python-requests

我正在抓取一些网站的数据。许多网站我抓取完全没有问题,但有几个网站返回加密数据。我在下面创建了一个基本演示来说明正在发生的事情。有没有办法解密返回的结果?

\n\n
headers_Get = {\n    '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',\n    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',\n    'Accept-Language': 'en-US,en;q=0.9',\n    'Accept-Encoding': 'gzip, deflate, br',\n    'DNT': '1',\n    'Connection': 'keep-alive',\n    'Upgrade-Insecure-Requests': '1'\n}\n\nq = 'www.nike.com'\ns = requests.Session()\nurl = 'http://' + q \nr = s.get(url, headers=headers_Get)\nr.text\n
Run Code Online (Sandbox Code Playgroud)\n\n

上面的代码从 Nike.Com 返回预期的 html。

\n\n

但是,如果我们运行相同的代码并将 q = 'www.nike.com' 替换为 q = 'www.vanityfair.com',我们会收到如下所示的代码:

\n\n
\\x1bX\xef\xbf\xbdU?\xef\xbf\xbd(J\xef\xbf\xbd\\x1a\xef\xbf\xbd\xef\xbf\xbd|=;\xef\xbf\xbd:\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdN\xef\xbf\xbd\\x01\xef\xbf\xbd\xef\xbf\xbdJ\xef\xbf\xbd.\xef\xbf\xbd\xef\xbf\xbd$\xef\xbf\xbdD[\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd1\xef\xbf\xbd\\x11[T2/\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdrq}\xef\xbf\xbd\\x00\xca\x81\xef\xbf\xbd\\x06(\xef\xbf\xbd\xef\xbf\xbdJ,\xef\xbf\xbd\xdc\xb3R\xef\xbf\xbd\\'Gs\xef\xbf\xbd\xd1\x8f\xef\xbf\xbdl\xef\xbf\xbd\\n\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd)\xef\xbf\xbdQf\xef\xbf\xbd\xef\xbf\xbd\\x11\xef\xbf\xbd\\x15\xef\xbf\xbd\\x80\xef\xbf\xbd\xef\xbf\xbd\\r\\x1d\xef\xbf\xbdo \xef\xbf\xbd<\xef\xbf\xbdo\xef\xbf\xbd??>}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\x07\xef\xbf\xbd\xef\xbf\xbd\\n\xef\xbf\xbd\\x1dE\\ti\xef\xbf\xbd\\x19\\x01D\xef\xbf\xbd)\xef\xbf\xbdz\\x06\\x00p\xef\xbf\xbd\\x18\xef\xbf\xbde\\n(\xef\xbf\xbds&\xef\xbf\xbd\xef\xbf\xbd\\x1c\xef\xbf\xbd\xef\xbf\xbdga$e\\n\xef\xbf\xbdPGd\\x07\xe7\x90\x9a\\x17I\xef\xbf\xbd8\xef\xbf\xbd\xde\xa9\xef\xbf\xbdA\xef\xbf\xbd\\x1f\xef\xbf\xbdc^\xef\xbf\xbdC\xef\xbf\xbdzh\xef\xbf\xbd\xc7\xb4\xef\xbf\xbdt\xef\xbf\xbd\xef\xbf\xbd@\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbdwbl\\x18\xef\xbf\xbd|}[\xef\xbf\xbd\xef\xbf\xbdo\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdg\\x02;\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd8+\xef\xbf\xbd\xef\xbf\xbd:6\\x039\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd-\\x19\\x1b\xef\xbf\xbd\xef\xbf\xbdQ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\t\\x1aJJ\\x1b\xef\xbf\xbd\\x11\xef\xbf\xbd\xef\xbf\xbd\\rq\\x0c\\x11\xef\xbf\xbd\xef\xbf\xbdp\xef\xbf\xbdQ\\x10\\x18\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\x14\xcd\x8b\xef\xbf\xbd\xef\xbf\xbd\\x0bus\xef\xbf\xbd\xef\xbf\xbde3X\xef\xbf\xbdw\xef\xbf\xbd\xe7\x8b\x94\xef\xbf\xbd\\x1d\xef\xbf\xbd\xef\xbf\xbd6\xef\xbf\xbdnwen\xef\xbf\xbd\\x02\\x08\xef\xbf\xbdJ\xef\xbf\xbdO\xef\xbf\xbd\xdf\xaf\xd7\xa3Q\xef\xbf\xbdT\\x0c\xef\xbf\xbdP\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd]]\xef\xbf\xbd\xef\xbf\xbdbI\xef\xbf\xbd\xef\xbf\xbd5\xef\xbf\xbd\xef\xbf\xbdEm/n\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdze\xef\xbf\xbdn.Wx\xef\xbf\xbd\xef\xbf\xbd(\\x05\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd+}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd^\xef\xbf\xbd.qa\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdE\xef\xbf\xbdV\xef\xbf\xbde\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd}w}\xef\xbf\xbd\\x16\xef\xbf\xbdU]/\xef\xbf\xbd]-\xef\xbf\xbdd\xcd\x8b$\xe0\xa8\xa1\xef\xbf\xbda\xc4\x97up\xef\xbf\xbd\xef\xbf\xbdm\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdo\\x06'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我猜测这是升级不安全请求的网站,但是我如何解密这些结果以接收像 Nike 一样的预期 html 代码?

\n\n

注意:我通过 post 和 get 得到相同的结果。

\n

Tob*_*bey 7

发出不带标头的请求Accept-Encoding,这样服务器就不会压缩要发送的消息