• 在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())
  • 相关阅读:
    win服务大全 (转)
    给大家贴一点好东东 喜欢电影的朋友请看
    滚动字幕的制作 marquee
    嵌入式软件工程师读书计划总纲 转
    优秀男人的十五条标准[转]
    寒冷的冬天到了,我们开始画饼充饥
    如何用.NET创建Windows服务 [转]
    请教:如何进行存储过程的调试
    人际交往(转)
    用户控件 与 Response.Redirect 转向的问题
  • 原文地址:https://www.cnblogs.com/CoolJayson/p/7350432.html
Copyright © 2020-2023  润新知