#python #selenium #web-scraping #beautifulsoup
Вопрос:
Я хочу получить ссылку на проверку из GmailnatorInbox, и этот сайт содержит ссылку на проверку разногласий, которая является следующей ссылкой на проверку разногласий
Я хочу получить эту href с помощью bs4 и передать ее в ссылку драйвера selenium, например driver.get(url)
url
, в качестве href ofc.
Кто-нибудь может сделать какой-нибудь код, чтобы удалить ссылку из почтового ящика gmailnator, пожалуйста? Я попробовал источник страницы, однако источник страницы не содержит href.
Это код, который я написал, чтобы получить href, но href, который мне нужен (discord one), находится в исходном коде, поэтому я думаю, что именно поэтому он не появляется.
ОБНОВЛЕНИЕ! ВСЕ СДЕЛАНО И ИСПРАВЛЕНО
driver.get('https://www.gmailnator.com/inbox/#for.ev.e.r.my.girlt.m.p@gmail.com')
time.sleep(6)
driver.find_element_by_xpath('//*[@id="mailList"]/tbody/tr[2]/td/a/table/tbody/tr/td[1]').click()
time.sleep(4)
url = driver.current_url
email_for_data = driver.current_url.split('/')[-3]
print(url)
time.sleep(2)
print('Getting Your Discord Verify link')
print('Time To Get Your Discord Link')
soup = BeautifulSoup(requests.get(url).text, "lxml")
data_email = soup.find("")
token = soup.find("meta", {"name": "csrf-token"})["content"]
cf_email = soup.find("a", class_="__cf_email__")["data-cfemail"]
endpoint = "https://www.gmailnator.com/mailbox/get_single_message/"
data = {
"csrf_gmailnator_token": token,
"action": "get_message",
"message_id": url.split("#")[-1],
"email": f"{email_for_data}",
}
headers = {
"referer": f"https://www.gmailnator.com/{email_for_data}/messageid/",
"cookie": f"csrf_gmailnator_cookie={token}; ci_session={cf_email}",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.86 "
"YaBrowser/21.3.0.740 Yowser/2.5 Safari/537.36",
"x-requested-with": "XMLHttpRequest",
}
r = requests.post(endpoint, data=data, headers=headers)
the_real_slim_shady = (
BeautifulSoup(r.json()["content"], "lxml")
.find_all("a", {"target": "_blank"})[1]["href"]
)
print(the_real_slim_shady)
Комментарии:
1. Можем ли мы, по крайней мере, увидеть ваши усилия по решению этой проблемы ? ТАК что это не платформа, на которой мы пишем код для вас. Мы здесь только для того, чтобы помочь вам, пожалуйста, имейте это в виду.
2. конечно, я предоставлю его, я также узнал некоторую другую информацию о том, что необходимая ссылка находится в iframe srcdoc
Ответ №1:
Вы можете подделать все это с помощью pure requests
, чтобы получить Verify
ссылку. Во-первых, вам нужно получить значения token
и cf_email
значения. Тогда все довольно просто.
Вот как получить ссылку:
import requests
from bs4 import BeautifulSoup
url = "https://www.gmailnator.com/geralddoreyestmp/messageid/#179b454b4c482c4d"
soup = BeautifulSoup(requests.get(url).text, "lxml")
token = soup.find("meta", {"name": "csrf-token"})["content"]
cf_email = soup.find("a", class_="__cf_email__")["data-cfemail"]
endpoint = "https://www.gmailnator.com/mailbox/get_single_message/"
data = {
"csrf_gmailnator_token": token,
"action": "get_message",
"message_id": url.split("#")[-1],
"email": "geralddoreyestmp",
}
headers = {
"referer": "https://www.gmailnator.com/geralddoreyestmp/messageid/",
"cookie": f"csrf_gmailnator_cookie={token}; ci_session={cf_email}",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.86 "
"YaBrowser/21.3.0.740 Yowser/2.5 Safari/537.36",
"x-requested-with": "XMLHttpRequest",
}
r = requests.post(endpoint, data=data, headers=headers)
the_real_slim_shady = (
BeautifulSoup(r.json()["content"], "lxml")
.find_all("a", {"target": "_blank"})[1]["href"]
)
print(the_real_slim_shady)
Вывод (ваша ссылка будет другой!):
https://click.discord.com/ls/click?upn=qDOo8cnwIoKzt0aLL1cBeARJoBrGSa2vu41A5vK-2B4us-3D77CR_3Tswyie9C2vHlXKXm6tJrQwhGg-2FvQ76GD2o0Zl2plCYHULNsKdCuB6s-2BHk1oNirSuR8goxCccVgwsQHdq1YYeGQki4wtPdDA3zi661IJL7H0cOYMH0IJ0t3sgrvr2oMX-2BJBA-2BWZzY42AwgjdQ-2BMAN9Y5ctocPNK-2FUQLxf6HQusMayIeATMiTO-2BlpDytu-2FnIW4axB32RYQpxPGO-2BeHtcSj7a7QeZmqK-2B-2FYkKA4dl5q8I-3D
Комментарии:
1. по какой-то причине это работало совсем недавно, но сейчас не работает. ошибка
Expecting value: line 1 column 1 (char 0)
, которую я получаю, обновляет мой код, чтобы вы могли видеть, как я это делаю. когда я делаю это с помощью кода ur, кажется, что он работает нормально.2. И что именно вы пытаетесь сделать?
3. я получаю ссылку на идентификатор сообщения, используя драйвер seleniums.текущий.url. я обновил свой код выше, по какой-то причине он, похоже, не работает.
4. подождите, я думаю, в чем проблема. ссылка на заголовки и электронное письмо с данными. но я, похоже, не могу разобраться в том, как сделать электронное письмо в формате данных и ссылок в формате {}, чтобы оно получало его с текущего URL-адреса
5. пожалуйста, измените href [0] на [1], чтобы получить ссылку проверить href. я все исправил