js 抓取网页内容(抓取时选用它,主要是Selenium可以渲染页面,相对于requests+BeautifulSoup会慢 )
优采云 发布时间: 2021-11-11 03:03js 抓取网页内容(抓取时选用它,主要是Selenium可以渲染页面,相对于requests+BeautifulSoup会慢
)
我们在爬取的时候选择它,主要是因为Selenium可以渲染页面,运行页面中的JS,点击按钮,提交表单等操作。
但是因为Selenium会渲染页面,所以会比requests+BeautifulSoup慢。
关于 PhantomJs
PhantomJs 可以看作是一个没有页面的浏览器,有一个渲染引擎(QtWebkit)和一个 JS 引擎(JavascriptCore)。 PhantomJs具有DOM渲染、JS运行、网络访问、网页截图等多种功能。
使用 PhantomJS 而不是 Chromedriver 和 firefox,主要是因为 PhantomJS 的静音模式(无需打开浏览器在后台运行)。
抓取示例的小测试-抓取标题
首先尝试一个简单的例子。以前这类内容一般都是用requests+BeautifulSoup或者Scrapy来处理的。
from selenium import webdriverbrowser = webdriver.PhantomJS('D:\phantomjs.exe') #浏览器初始化;Win下需要设置phantomjs路径,linux下置空即可url = ' # 设置访问路径browser.get(url) # 打开网页title = browser.find_elements_by_xpath('//h2') # 用xpath获取元素for t in title: # 遍历输出 print t.text # 输出其中文本 print t.get_attribute('class') # 输出属性值browser.quit() # 关闭浏览器。当出现异常时记得在任务浏览器中关闭PhantomJS,因为会有多个PhantomJS在运行状态,影响电脑性能