js 抓取网页内容(抓取时选用它,主要是Selenium可以渲染页面,相对于requests+BeautifulSoup会慢 )

优采云 发布时间: 2021-11-11 03:03

  js 抓取网页内容(抓取时选用它,主要是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在运行状态,影响电脑性能

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线