zoukankan      html  css  js  c++  java
  • 在Python中用Selenium执行JavaScript

    Selenium自己不带浏览器, 需要与第三方浏览器结合在一起使用.例如在Firefox上运行Selenium.

    PhantomJS是一个"无头"浏览器. 它会把网站加载到内存并执行页面上的JavaScript, 但是它不会向用户展示网页的图形界面. 把Selenium和PhantomJS结合在一起, 就可以运行一个非常强大的网络爬虫了, 可以处理cookie, JavaScript,header, 以及任何你需要做的事.

    Selenium可以从PyPI网站(https://pypi.python.org/simple/selenium)下载Selenium库, 也可以用pip安装.

    PhantomJS可以从官网下载(http://phantomjs.org/download.html) , PhantomJS不是一个Python库,不能用pip安装.

    1 from selenium import webdriver
    2 import time
    3 
    4 driver = webdriver.PhantomJS(executable_path=' ')
    5 driver.get("http://pythonscraping.com/pages/javascript/ajaxDemo.html")
    6 time.sleep(3)
    7 print(driver.find_element_by_id('content').text)
    8 driver.close()

    executable_path变量值为phantomjs.exe的路径. 如: executable_path = '/download/phantomjs-2.1.1-windows/bin/phantomjs'

    selenium的选择器都是用了非常直截了当的名称, 上面的例子, 也可以用如下的选择器:

    driver.find_element_by_css_selector("#content")

    driver.find_element_by_tag_name("div")

    另外, 如果你还是想用BeautifulSoup来解析网页内容, 可以用WebDriver的page_source函数返回页面的源代码字符串.

    1 pageSouce = driver.page_source
    2 bsObj = BeautifulSoup(pageSource)
    3 print(bsObj.find(id="content").get_text())
  • 相关阅读:
    Explain执行计划
    SQL优化(SQL + 索引)
    SQL(含索引)
    分组聚合 merger
    服务分组 group
    多注册中心 registry
    多协议 protocol
    常用协议 —— webservice://
    常用协议 —— http://
    最强AngularJS资源合集
  • 原文地址:https://www.cnblogs.com/CoolJayson/p/7350432.html
Copyright © 2011-2022 走看看