Я пытаюсь заполнить форму с помощью 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-файл. Кроме того, я заметил, что этот код очень медленный, и мне интересно, почему.