Я пытаюсь написать простой скрипт, который выполняет следующие действия:Проверка веб-сайтов для обновления (Web Automation с Python + Selenium)
- автоматически запускается каждые 6 часов
- Проверки Сайт недвижимости для новых предложений
- Email новые списки деталей если найдено, иначе не прекращает сценарий до следующего запуска
Я планирую использовать кронтаб для execut e (1). Кроме того, это сценарий я придумал до сих пор для одного конкретного сайта:
from selenium import webdriver
import smtplib
import sys
driver = webdriver.Firefox()
#Capital Pacific Website
#Commerical Real Estate
#open text file containing property titles we already know about
properties = open("properties.txt", "r+")
currentList = []
for line in properties:
currentList.append(line)
#to search for new listings
driver.get("http://cp.capitalpacific.com/Properties")
assert "Capital" in driver.title
#holds any new listings
newProperties = []
#find all listings on page by Property Name
newList = driver.find_elements_by_class_name('overview')
#find elements in pageList not in oldList & add to newList
#add new elements to
for x in currentList:
for y in newList:
if y != x:
newProperties.append(y)
properties.write(y)
properties.close()
driver.close()
#if no new properties found, terminate script
#else, email properties
if not newProperties:
sys.exit()
else:
fromaddr = '[email protected]'
toaddrs = ['[email protected]']
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
for item in newProperties:
msg = item
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
вопросов, которые я до сих пор: (пожалуйста, медведь со мной здесь, как я питон начинающий ..)
Использование списка для хранения веб-элементов, возвращаемых с помощью метода «найти по классу» selenium: есть ли лучший способ записи в/из текстового файла, чтобы я только получил новые добавленные свойства?
Если скрипт находит свойство класса, которое присутствует на веб-сайте, но не в newList, существует ли способ, которым я могу пройти этот div, только чтобы получить информацию о листинге?
Любые предложения/рекомендации, пожалуйста! Спасибо.
спасибо за ответ. Я признаю, что JSON - это, вероятно, путь, но я не очень хорошо знаком с этим. Вы рекомендуете импортировать json-файлы в скрипт в список? Как тогда вы могли бы получить доступ к URL-адресу маркетингового пакета в списке для сравнения для новых объявлений? – tsnn2d
@RobertOttolia Я думаю, что если вы поедете с JSON, модуль 'json' поможет загрузить и выгрузить файл. Хотя я бы действительно подумал о том, что у вас есть нормальная реальная база данных для хранения списков. – alecxe
@RobertOttolia, говорящий о URL-адресе маркетингового пакета, добавлен в фрагмент кода, проверьте его. – alecxe