chrome开发者工具中有模拟手机端调试工具,不光为自动化测试省笔买手机的钱(-_-这个具体还是看情况),还能让爬虫显得更真实,使用起来就像下图这样
以下就是代码实现的两种方式
导入selenium相关库
from selenium import webdriver
from selenium.webdriver.common.touch_actions import TouchActions # 用来模拟手机端操作
1、通过设置设备名称实现
这种方式只支持chrome设备列表中已存在的设备,不过你也可以自己添加编辑
mobileEmulation = {'deviceName': 'Galaxy S5'}
options = webdriver.ChromeOptions()
options.add_experimental_option('mobileEmulation', mobileEmulation)
driver = webdriver.Chrome(chrome_options=options)
driver.get('http://m.baidu.com')
input('是否有效')
driver.close()
driver.quit()
2、通过自定义设备参数实现
WIDTH = 600
HEIGHT = 800
PIXEL_RATIO = 3.0
# UA 必须要是手机设备的
UA = 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3'
mobileEmulation = {"deviceMetrics": {"width": WIDTH, "height": HEIGHT, "pixelRatio": PIXEL_RATIO}, "userAgent": UA}
options = webdriver.ChromeOptions()
options.add_experimental_option('mobileEmulation', mobileEmulation)
driver = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=options)
driver.get('https://m.baidu.com')
time.sleep(1)
inputs = driver.find_element_by_xpath('//*[@id="index-kw"]')
TouchActions(driver).tap(inputs).perform() # 模拟触控
input('是否有效')
driver.close()
driver.quit()