Как я могу конвертировать скриптовый скрипт как веб-сервис? - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу построить API, который принимает строку и возвращает HTML-код.

Вот мой очищающий код, который я хочу в качестве веб-сервиса.

код

from selenium import webdriver
import bs4
import requests
import time

url = "https://www.pnrconverter.com/"
browser = webdriver.Firefox()
browser.get(url)
string = "3 PS 232 M 03FEB 7 JFKKBP HK2 1230A 420P 03FEB E 
PS/JPIX8U"
button = 
browser.find_element_by_xpath("//textarea[@class='dataInputChild']")
button.send_keys(string) #accept string
button.submit()
time.sleep(5)
soup = bs4.BeautifulSoup(browser.page_source,'html.parser')
html = soup.find('div',class_="main-content") #returns html
print(html) 

Может кто-нибудь сказать мне наилучшее из возможных решений, чтобы обернуть мой код в API / Web-сервис.

Ответы [ 3 ]

1 голос
/ 30 апреля 2019

В общем, лучшего решения не существует, поскольку решение должно соответствовать проблеме и доступным ресурсам.

Сейчас кажется, что вы пытаетесь свернуть чужой сайт. Если это проблема, которую вы на самом деле пытаетесь решить, и вы хотите отдать должное, вам, вероятно, следует просто перенаправить людей на их сайт. Пусть ваш сайт вернет 302 Redirect с их URL в поле Location в вашем заголовке.

Если то, что вы пытаетесь сделать, - это получить ответ от этого примера проверки, который вы жестко закодировали, и сделать этот результат доступным, я бы посоветовал вам поместить его в статический файл за nginx.

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

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

В целях хостинга вам необходимо выяснить, как часто будет срабатывать ваш API. Вероятно, вы можете начать с Heroku или чего-то подобного довольно легко, и при необходимости увеличить его. Вы, вероятно, захотите WebObj или Flask или что-то подобное, сидя на сайте, где вы собираетесь разместить это приложение. Вы можете использовать их для обработки того, что, как я предполагаю, будет простым запросом в строку, с которой вы хотите поразить их API.

0 голосов
/ 31 мая 2019

Я владелец PNR Converter, поэтому могу пролить свет на ваши попытки удалить контент с нашего сайта. К сожалению, очистка от конвертера PNR не рекомендуется. Мы разрабатываем API, который выглядит так, как будто бы он соответствует вашим потребностям и должен быть готов в недалеком будущем. Если вы свяжетесь с нами через сайт, мы будем рады сотрудничать с вами, если вы захотите использовать PNR Converter на законных основаниях. PNR Converter получает как минимум одно полное обновление в год, и поэтому мы регулярно меняем весь код. Мы также отслеживаем все запросы к нашему сайту и блокируем любые запросы, которые рассматриваются как ненадлежащее использование. Наш фильтр уже определил ваш IP-адрес (оканчивается на 250.144) как возможное неправильное использование.

Как я уже сказал, если вы хотите работать с нами в PNR Converter на законных основаниях и не очищать наш контент, мы будем рады это сделать! Пожалуйста, продолжайте проверять https://www.pnrconverter.com/api-introduction информацию о нашем API.

В эти выходные мы выпускаем обновление бэкэнда, которое будет иметь другую структуру HTML и динамически именованные элементы, которые станут серьезной проблемой для веб-скребков!

0 голосов
/ 30 апреля 2019

Похоже, что перед печатью (HTML) может потребоваться сохранить код в формате json.Я сделал нечто подобное с php / hybrid Python.По сути, мы бы сохранили данные в формате JSON.Тогда любая попытка открыть этот сайт в Интернете приведет к получению этих данных / api 200!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...