CoderCastrov logo
CoderCastrov
Парсер

_Парсинг веб-почты с использованием Python_

_Парсинг веб-почты с использованием Python_
просмотров
2 мин чтение
#Парсер

Python, как мы все знаем, просто "потрясающий". Он может сделать кажущиеся сложными вещи ясными и простыми. Итак, я начну эту статью с небольшого предисловия о том, как я пришел к этой идее парсинга?

Недавно я узнал, что мой студенческий почтовый ящик скоро будет закрыт, так как я завершил свою учебу. Я, конечно же, был в ужасе, потому что у меня буквально было 10 тысяч писем во входящих, и некоторые из них были действительно важными для меня, и я не мог позволить себе потерять их. Поэтому я решил сохранить каждое из этих писем для будущего использования. Я справился с этим с помощью простого скрипта на Python, используя парсинг.

После прочтения этой статьи вы почувствуете себя комфортно при парсинге веб-страниц с использованием Beautiful Soup, selenium и pyautogui. Кроме того, я также использовал другие стандартные пакеты Python.

Эта статья парсит старую веб-почту Индийского института технологий, Канпура, но эти коды легко могут быть адаптированы для других веб-серверов. Хотя студентам IITK будет легко повторить это.


Основы парсинга веб-страниц

Парсинг веб-страниц - это просто искусство извлечения данных с веб-страниц или веб-сайтов.

Общий процесс перед парсингом веб-страницы включает в себя:

Теперь мы готовы сохранить наши письма, прежде чем адрес электронной почты закроется.

Импорты

Начнем с импорта этих библиотек Python. Если у вас возникнут проблемы с Selenium, попробуйте взглянуть на это.

import pandas as pd
import numpy as np
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import pyautogui

Полная структура

Давайте сначала войдем в почту. Этот код использует ваше «Имя пользователя» и «Пароль», чтобы войти в вашу почту с помощью selenium и pyautogui.

driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.maximize_window()
URL = ‘[https://nwm.iitk.ac.in/'](https://nwm.iitk.ac.in/')    ### здесь используйте URL вашей почты
driver.get(URL)
username = driver.find_element_by_id(“rcmloginuser”)
username.clear()
username.send_keys(**_Имя пользователя_**)
password = driver.find_element_by_id(“rcmloginpwd”)
password.clear()
password.send_keys(**_Пароль_**)
l = driver.find_element_by_id(“rcmloginsubmit”).click()

Чтобы открыть определенное письмо из полного массива, мы находим каждое письмо и нажимаем на него.

save_path = **_Ваше расположение_**
messages = driver.find_element_by_xpath(“//a[contains([@href](http://twitter.com/href),’_uid={0}’)]”.format(res)).click()
time.sleep(10)
pyautogui.click(800,200)   ### эти координаты могут варьироваться
name = driver.find_element_by_xpath(“//a[contains([@href](http://twitter.com/href),’_uid={0}’)]”.format(res)).get_attribute(“innerHTML”)
name = name.split(‘<span>’)[1]
name = name.split(‘</span>’)[0]

После открытия письма давайте перейдем к его сохранению.

filename = os.path.join(save_path,name)
pyautogui.hotkey(‘ctrl’, ‘s’)
time.sleep(1)
pyautogui.click(200,200)   ### эти координаты могут варьироваться
pyautogui.hotkey(‘delete’)
pyautogui.write(filename)
pyautogui.hotkey(‘enter’)

Этот полный код поможет вам сохранить одно письмо за раз, вы можете запустить цикл для сохранения всех ваших писем.

Вывод

Цель этой статьи - только помочь вам начать парсить, и этот подход, безусловно, не подойдет для всех почтовых служб. Просто убедитесь, что вы изучаете веб-страницы, которые вы собираетесь парсить, и вышеуказанные методы помогут вам достичь вашей цели.

P.S. Здесь я использовал библиотеку pyautogui из Python, она позволяет выполнять все функции клавиатуры и мыши через код. Для меня она была новой, и я считаю, что она будет полезна для моих читателей.


Поделитесь своими отзывами со мной, и если вам понравилась эта статья в блоге, поставьте ей лайк. Подписывайтесь на меня в социальных сетях (Instagram, Facebook, и LinkedIn)_