使用Selenium和python在网页网格内抓取javascript数据

时间:2018-09-14 19:03:35

标签: python selenium selenium-webdriver webdriver webdriverwait

我的问题是,我需要网格中包含网站https://applipedia.paloaltonetworks.com的子域的所有数据-(包含NAME,CATEGORY,SUBCATEGORY,RISK,TECHNOLOGY的数据)。我需要的是[示例:在第5行中:2ch有2个子域| _2ch-base和2ch-posting。像这样,我只想获取具有子域的所有应用程序的列表]

当我尝试在该行中添加任何内容时,不是这样:

table =wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,    'tbody#bodyScrollingTable tr')))

我收到超时错误。

下面是我到目前为止拥有的脚本,该脚本可以从网格中获取所有数据,但我只需要应用程序,并且包含子域。[示例2ch,2ch-base,2ch-posting]。我通过检阅元素发现了一种模式,即所有不具有子域的应用程序都具有(),或者我们可以通过()字段进行查找,这对于所有具有子域的应用程序都是常见的。解决该问题的任何帮助将不胜感激。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 

driver   = webdriver.Chrome(executable_path = r'/Users/am/Downloads/chromedriver')
driver.maximize_window()

driver.get("https://applipedia.paloaltonetworks.com/") 

wait = WebDriverWait(driver,30)

table =wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,    'tbody#bodyScrollingTable tr')))

for tab in table:
  print(tab.text)

0 个答案:

没有答案