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

下面的这段完整代码,提供了上述的两个功能,具体的请看注释

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("https://www.168seo.cn/")
except:
    pass
driver.get_screenshot_as_file('01.png')  # 保存网页截图
driver.quit()  # 退出浏览器

selenium设置phantomjs-图片不加载:

from selenium import webdriver

options = webdriver.ChromeOptions()
prefs = {
    'profile.default_content_setting_values': {
        'images': 2
    }
}
options.add_experimental_option('prefs', prefs)
browser = webdriver.Chrome(chrome_options=options)

# browser = webdriver.Chrome()
url = "https://www.168seo.cn/"
browser.get(url)
input("是否有图")
browser.quit()

selenium 修改phantomjs  user-Agent请求头和禁止加载图片的方法-新乡seo|网站优化,网站建设—昊天博客

设置selenium Chrome 头部

# !/usr/bin/python
# -*- coding: utf-8 -*-
 
from selenium import webdriver
# 进入浏览器设置
options = webdriver.ChromeOptions()
# 设置中文
options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
browser = webdriver.Chrome(chrome_options=options)
url = "https://httpbin.org/get?show_env=1"
browser.get(url)
browser.quit()

返回结果是:

selenium 修改phantomjs  user-Agent请求头和禁止加载图片的方法-新乡seo|网站优化,网站建设—昊天博客