Суппрейнер и php не могут видеть все найденные дивы - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь заполнить форму с помощью Python, а затем получить полученную страницу, чтобы использовать ее в моем файле .php. Код Python:

def sitecheck(SITE_URL2):
    URL2 = "https://achecker.ca/checker/index.php"
    payload = {
        'uri': SITE_URL2,
        'enable_html_validation': 'on',
        'enable_css_validation': 'on',
        'show_source': 'on',
        'radio_gid[]': '3'
    }
    payload = urllib.parse.urlencode(payload).encode("utf-8")

    # prepare the option for the chrome driver and start chrome driver
    options = webdriver.ChromeOptions()
    options.headless = True    
    driver = webdriver.Chrome(options=options)
    driver.get(URL2)
    inputElement = driver.find_element_by_id("checkuri")
    inputElement.send_keys(SITE_URL2)

    driver.find_element_by_link_text("Options").click()
    driver.find_element_by_id("enable_html_validation").click()
    driver.find_element_by_id("enable_css_validation").click()
    driver.find_element_by_id("radio_gid_3").click()
    driver.find_element_by_name("validate_uri").click()

    html = driver.execute_script("return document.getElementsByTagName('html')[0].innerHTML")
    driver.quit()

    s = ""
    fonly = SoupStrainer('div', {
        'id': ['AC_errors', 'AC_likely_problems', 'AC_potential_problems', 'AC_html_validation_result',
               'AC_css_validation_result']})
    for link in BeautifulSoup(html, "lxml", parse_only=fonly):
        s = s + str(link)

    print(s)
    return ;

пока код .php такой:

<code><?php
$path="pyt"; 
        chdir($path); 

        $output = shell_exec('python newfile_1.py');
        "<pre>$output
» ?>

Теперь результат в python работает хорошо, я вижу все выбранные элементы div. Но когда я вызываю его с помощью php, я вижу только три из них, похоже, что «AC_html_validation_result» и «AC_css_validation_result» больше не существует. МОЙ ВОПРОС : Я хотел бы получить одинаковый результат в моем .php-файле и в моем .py-файле, я понятия не имею, почему это не работает. Все, что мне нужно, это заполнить форму и получить div на итоговой странице, чтобы скопировать их в php-файл. Кроме того, я заметил, что этот код очень медленный, и мне интересно, почему.

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