问题:使用Selenium和python删除javascript生成的内容

问题:使用Selenium和python删除javascript生成的内容,javascript,python,selenium,web-scraping,Javascript,Python,Selenium,Web Scraping,我正试图从这个网站上搜集房地产数据: 正如您所看到的,相关内容被放置在文章标签中 我正在用phantomjs运行selenium: driver = webdriver.PhantomJS(executable_path=PJSpath) 然后我用python生成URL,因为所有搜索结果都是链接的一部分,所以我可以在程序中搜索我要查找的内容,而无需填写表单 打电话之前 driver.get(engine_link) 我将engine_链接复制到剪贴板,它在chrome中可以正常打开。 接下来

我正试图从这个网站上搜集房地产数据: 正如您所看到的,相关内容被放置在文章标签中

我正在用phantomjs运行selenium:

driver = webdriver.PhantomJS(executable_path=PJSpath)
然后我用python生成URL,因为所有搜索结果都是链接的一部分,所以我可以在程序中搜索我要查找的内容,而无需填写表单

打电话之前

driver.get(engine_link)
我将engine_链接复制到剪贴板,它在chrome中可以正常打开。 接下来,我等待所有可能的重定向发生:

def wait_for_redirect(wdriver):
    elem = wdriver.find_element_by_tag_name("html")
    count = 0
    while True:
        count += 1
        if count > 5:
            print("Waited for redirect for 5 seconds!")
            return
        time.sleep(1)
        try:
            elem = wdriver.find_element_by_tag_name("html")
        except StaleElementReferenceException:
            return
现在,我想迭代当前页面上的所有
标记:

for article in driver.find_elements_by_tag_name("article"):
但是这个循环永远不会返回任何东西。这个程序没有找到任何文章标签,我已经用xpath和css选择器尝试过了。此外,这些文章都包含在一个章节标签中,而这个标签也找不到

Selenium中这种特定类型的标签有问题吗?或者我在这里遗漏了一些与JS相关的东西吗?页面底部有JavaScript模板,其命名表明它们生成搜索结果

感谢您的帮助

并添加一个(为我工作):

from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# set a custom user-agent
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent

driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.get("http://www.seloger.com/list.htm?cp=40250&org=advanced_search&idtt=2&pxmin=50000&pxmax=200000&surfacemin=20&surfacemax=100&idtypebien=2&idtypebien=1&idtypebien=11")

# wait for arcitles to be present
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.TAG_NAME, "article")))

# get articles
for article in driver.find_elements_by_tag_name("article"):
    print(article.text)