selenium 修改phantomjs user-Agent请求头和禁止加载图片的方法

phantomjs是一个没有界面的浏览器,支持各种web标准,提供DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG,对于爬取一些经过js渲染的页面非常有用。
但是phantomjs默认的user-agent一般都被那些防采集的网站屏蔽了,鬼都知道用这个浏览器,都是来爬取网页的,不是正常的用户。
phantomjs相当于一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,只是没有界面而已。所以爬取网页的速度很慢。如果可以不加载图片,网页加载速度就会快不少。
下面的这段完整代码,提供了上述的两个功能,具体的请看注释

 
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 
 
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0") #设置user-agent请求头
dcap["phantomjs.page.settings.loadImages"] = False #禁止加载图片
 
driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.set_page_load_timeout(40) #设置页面最长加载时间为40s
 
try:
    driver.get("http://junyiseo.com/")
except:
    pass
 
driver.get_screenshot_as_file('01.png') #保存网页截图
driver.quit() #退出浏览器

一条评论

  1. xiaodiaomao说道:

    非常好 感谢了 终于解决了我的问题

发表评论