zaLinux.ru

Как получить содержимое и кукиз .onion сайта в Python


С кукиз должна работать программа, которая получает данные из сети Tor, например, в случае парсера это может быть cURL, PHP скрипт, скрипт на Python и так далее.

В статье «Парсинг сайтов: азы, продвинутые техники, сложные случаи» имеется пример работы с кукиз в cURL, а как получить содержимое веб-страницы (HTML код) и кукиз сайта в сети Tor, имена которых заканчиваются на .onion?

Для работы парсера с сетью Tor нужно данные локальной службы Tor (номер порта и «localhost» в качестве IP) указать как прокси для выхода в сеть.

Для нормальной работы с .onion сайтами нужно использовать DNS сервера сети Tor.

В скрипте Python для доступа к сайтам .onion нужно использовать протокол socks5h чтобы включить использование удалённых DNS для преобразование имён хостов в IP, если локальное преобразование DNS не удалось.

Следующий кода он показывает страницу .onion сайта (адрес http://hacking5xcj4mtc63mfjqbshn3c5oa2ns7xgpiyrg2fenl2jd4lgooad.onion) и кукиз:

import requests
import json

proxies = {
	'http': 'socks5h://127.0.0.1:9050',
	'https': 'socks5h://127.0.0.1:9050'
}

session = requests.Session()

data = session.get("http://hacking5xcj4mtc63mfjqbshn3c5oa2ns7xgpiyrg2fenl2jd4lgooad.onion",proxies=proxies).text

print(data)

print(session.cookies)

В качестве сайта используется простой PHP скрипт, который отправляет HTML код и кукиз:


Пример работы кода, который приведён выше — вы можете видеть HTML и кукиз:

Строка

print(session.cookies)

выводит:

< RequestsCookieJar[< Cookie HackWare-cookie=For%20testing%20purpose%20only for hacking5xcj4mtc63mfjqbshn3c5oa2ns7xgpiyrg2fenl2jd4lgooad.onion/ >] >

То есть формат:

< RequestsCookieJar[< Cookie NAME=VALUE for SITE.onion/ >] >

Если print(session.cookies) поменять на

print(session.cookies.get_dict())

то формат будет таким:

{'HackWare-cookie': 'For%20testing%20purpose%20only'}

В принципе, сайты могут шифровать кукиз. Точнее, в любом случае будут присылаться кукиз в формате «ИМЯ=ЗНАЧЕНИЕ». Но ЗНАЧЕНИЕ может быть зашифровано так, что только сайт будет знать, что с этим делать. Но вообще-то пользователю не нужно об этом задумываться — какие кукиз получил, такие браузер и отправляет.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован.