我正在尝试用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代码是这样的:
<?php
$path="pyt";
chdir($path);
$output = shell_exec('python newfile_1.py');
"<pre>$output</pre>"
?>
现在,python中的结果运行良好,我可以看到所有选定的div。但是,当我用php调用它时,我只能看到其中的三个,看起来“ AC_html_validation_result”和“ AC_css_validation_result”不再存在。 我的问题:我想在我的.php文件和.py文件中得到相同的结果,我不知道为什么这不起作用。我需要做的就是填写表格,并在结果页面中获取div并将其复制到php文件中。另外,我注意到这段代码非常慢,我想知道为什么。