时间:2021-05-23
python爬虫写起来非常快,虽然也可以用java,但是没有python来的简洁迅速
selenium在前面总结过,是一个自动化测试库。headless chrome是无界面的浏览器模式,和PHANTOMJS类似。但是PHANTOMJS往往会出现莫名的错误,而且速度没有headless chrome快
from selenium.webdriver.chrome.options import Options global DRIVERchrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu') DRIVER = webdriver.Chrome(chrome_options=chrome_options)爬虫的代码有一点需要注意,需要操作事件的时候最好不要直接用相应的方法,比如click。最好嵌入js脚本的方式进行调用。因为爬虫的代码执行速度很快,前端元素结构往往反应不过来,从而找出元素不可见或者不存在的错误。
province_items = DRIVER.find_element_by_class_name("city-province").find_elements_by_tag_name("a") #province_item.click()DRIVER.execute_script('arguments[0].click();',province_item)下面来个例子,由于做电商平台,省、市、区的数据很好找,但是没有镇、街道的信息。这里通过爬虫从淘宝网将镇,街道的信息抓取下来
#! /usr/local/bin/python# encoding: utf-8 '''Created on 2018年1月5日 @author: wulinfeng@date: 2018-1-5''' import time#import requestfrom selenium import webdriver#from selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesfrom selenium.webdriver.chrome.options import Optionsimport pymysql def init_db(): global CONNECTION CONNECTION = pymysql.connect("地址","用户名","密码","数据库" ,use_unicode=True, charset="utf8") def init_web_driver(): global DRIVER #DRIVER = webdriver.PhantomJS(executable_path='C:\phantomjs-1.9.2-windows\phantomjs.exe') #DRIVER.set_window_size(1920, 1080) ''' dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] = ( "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 " "(KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36" ) dcap["phantomjs.page.settings.viewportSize"] = ( "width: 1920, " "height: 1080" ) DRIVER = webdriver.PhantomJS(executable_path='C:\phantomjs-1.9.2-windows\phantomjs.exe',desired_capabilities=dcap) DRIVER.set_window_size(1920, 1080) ''' chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') DRIVER = webdriver.Chrome(chrome_options=chrome_options) #DRIVER=webdriver.Ie() #DRIVER=webdriver.Chrome() def close_db(): CONNECTION.close() def close_web_driver(): DRIVER.quit() def login_taobao(username, password): DRIVER.get("https://member1.taobao.com/member/fresh/deliver_address.htm?spm=a1z08.2.0.0.7dad47611Wnj46") #DRIVER.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.201864-2.d1.7d2082a4FxukGr&f=top&redirectURL=http%3A%2F%2Fmit() def back_tab(index): districtEle = DRIVER.find_element_by_class_name("city-select-tab").find_elements_by_tag_name("a")[index] DRIVER.execute_script('arguments[0].click();',districtEle) time.sleep(0.5) init_db()init_web_driver()login_taobao("用户名", "密码")get_data()close_db()close_web_driver()到此这篇关于selenium+headless chrome爬虫的实现示例的文章就介绍到这了,更多相关selenium+headless chrome爬虫内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
新版本的selenium已经明确警告将不支持PhantomJS,建议使用headless的Chrome或FireFox。两者使用方式非常类似,基本步骤为:下载驱
目前由于phantomjs已经不维护了,而新版的Chrome(59+)推出了Headless模式,对爬虫来说尤其是定时任务的爬虫截屏之类的是一大好事。不过按照网
通过python配合爬虫接口利用selenium实现自动化打开chrome浏览器,进行百度关键词搜索。1、安装python3,访问官网选择对应的版本安装即可,最
之所以把selenium爬虫称之为可视化爬虫主要是相较于前面所提到的几种网页解析的爬虫方式selenium爬虫主要是模拟人的点击操作selenium驱动浏览器并
使用Selenium驱动chrome页面,获得淘宝信息并用BeautifulSoup分析得到结果。使用Selenium时注意页面的加载判断,以及加载超时的异常处