Обновите веб-сайт с помощью информации о публикации Python ИЛИ откройте другую ссылку в существующей вкладке с помощью Python - PullRequest
0 голосов
/ 04 июня 2018

В данный момент я немного растерялся, и я надеюсь, что вы можете помочь!

Я пытаюсь узнать людей с OpenCV в Python.Это работает до сих пор.С идентификатором распознанного человека я хочу отобразить информацию, которая принадлежит ей или ему.

Для этого я попробовал что-то вроде этого:

1)

import webbrowser
webbrowser.open('http://mysite/index.php?userID=XYZ', new = 0)

Но хотя я написал «new = 0», он открывает новую вкладку браузера каждый раз, когда в ссылке появляется другой идентификатор пользователя.

2) Другой подход заключался в отправке информации через запрос http-запроса на веб-сайт, например:

url = 'http://mysite/index.php'
query = {'personID': XYZ}
res = requests.post(url, data=query)

Но, делая это, я понятия не имею, как работать с этой командой post в моем коде PHP, поэтому он обновляет сайт данными, принадлежащими пользователю XYZ ..

Можете ли вы помочь мне, пожалуйста?

С уважением


Edit1 - START: Небольшой пример PHP с использованием параметров GET будет выглядеть примерно так

<?php
    echo("<html><head><title></title></head><body>");

    if ($_GET['userID'] == 1) {
        echo("<div id='userContent'>Hello User 1</div>");
    }   
    else if ($_GET['userID'] == 2) {
        echo("<div id='userContent'>Hello User 2</div>");
    }
    else {
        echo("<div id='userContent'>Public, non user specific information</div>");
    }

    echo("</body></html>");
?>

Но на данный момент я не знаю, как сделать этот сайт динамическим, который показывает различную информацию, когда Python отправляет запрос ..

Edit1 - END


1 Ответ

0 голосов
/ 05 июня 2018

В настоящее время это невозможно в веб-драйвере. Флаг 0 относится к окну, а не к вкладке.Смотрите обсуждение этого на reddit здесь .Другой вопрос также задавался по поводу переполнения стека, но не получил ответов.

Это возможно, однако, с гораздо более многофункциональным пакетом Selenium.

import time

from selenium import webdriver

link1="http://mysite/index.php?userID=ABC"
link2="http://mysite/index.php?userID=XYZ"
driver=webdriver.Firefox()
driver.get(link1)
time.sleep(5)
driver.get(link2)

Selenium действительно требуетнекоторые шаги установки: http://selenium -python.readthedocs.io / installation.html

Относительно использования запросов , нет никаких причин, по которым вы не можете сделать GET запрос, так что вам не нужно беспокоиться об обработке почтового запроса:

import requests

url = "http://mysite/index.php?userID=ABC"
res = requests.get(url)
print(res.text)

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

...