本案例是基于selenium WEB自动化框架开发爬虫,对selenium框架知识不会或者不熟练的小伙伴,可以先去本博客末尾学习selenium的相关知识。
目标网站
珠宝匠
目标网址
http://www.zhubaoj.cn/www/meitu/meitu.html
开发环境
1、window11
2、python3.7
3、PyCharm Community Edition 2021.2.1
4、双核浏览器
5、浏览器自带开发者工具
网站分析
使用鼠标滚动页面在滚动过程中,网页不断加载出新的珠宝图片,说明网页是动态的,请看视频演示
视频演示如下:
珠宝匠网站类型分析
数据解析分析
我将目标服务器返回的数据先持久化到本地的HTML文件中,使用Pycharm自带的内置全局搜索小工具搜索土片名称珍珠黄金直接就定位到图片了,由于re性能更高,我们首选re,以下是我复制过来的几段HTML代码
<div class="l_meitudesc">珍珠黄金项链,by Sukkhi</div>
<div class="l_meituowner">
<img src="http://img.zhubaoj.cn:9001/data/00/78/Ch1bP1pzP_OAaD8SAAAh3LpFxGs909.png">
<div class="l_meitudesc">橄榄石白金耳钉,by Theo Fennell</div>
<div class="l_meituowner">
<img src="http://img.zhubaoj.cn:9001/data/00/78/Ch1bP1pzP_OAaD8SAAAh3LpFxGs909.png">
<div class="l_meitudesc">紫锂辉石白金耳钉,by Theo Fennell</div>
<div class="l_meituowner">
<img src="http://img.zhubaoj.cn:9001/data/00/78/Ch1bP1pzP_OAaD8SAAAh3LpFxGs909.png">
源代码
selenium前置知识
1、安装selenium模块
使用pip我们可以非常方便的安装selenium
pip install -U selenium
也可以从PYPI上下载selenium对应的whl文件进行本地安装
python setup.py install
2、浏览器驱动
selenium需要一个驱动程序才能与浏览器进行交互。例如,firefox需要geckodriver,chrome需要chromedriver
一些浏览器对应的驱动下载网址:
chrome: https://chromedriver.chromium.org/downloads
edge: https://developer.microsoft.com/en-us/microsoft- edge/tools/webdriver/
firefox: https://github.com/mozilla/geckodriver/releases
safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10/
3、selenium API介绍
-selenium.webdriver
控制chromedriver驱动谷歌浏览器,参数executable_path指定浏览器驱动的位置,参数options指定chromeoptions对象
-selenium.webdriver.common.by
元素定位器,该定位器有7种定位元素的方式,如下:
-CLASS_NAME = 'class name'
-CSS_SELECTOR = 'css selector'
-ID = 'id'
-LINK_TEXT = 'link text'
-NAME = 'name'
-PARTIAL_LINK_TEXT = 'partial link text'¶
-TAG_NAME = 'tag name'
-selenium.webdriver.common.keys
控制电脑键盘,有以下键盘可以控制,如下:
ADD = '\ue025'
ALT = '\ue00a'
ARROW_DOWN = '\ue015'
ARROW_LEFT = '\ue012'
ARROW_RIGHT = '\ue014'
ARROW_UP = '\ue013'
BACKSPACE = '\ue003'
BACK_SPACE = '\ue003'
CANCEL = '\ue001'
CLEAR = '\ue005'
COMMAND = '\ue03d'
CONTROL = '\ue009'
DECIMAL = '\ue028'
DELETE = '\ue017'
DIVIDE = '\ue029'
DOWN = '\ue015'
END = '\ue010'
ENTER = '\ue007'
EQUALS = '\ue019'
ESCAPE = '\ue00c'
F1 = '\ue031'
F10 = '\ue03a'
F11 = '\ue03b'
F12 = '\ue03c'
F2 = '\ue032'
F3 = '\ue033'
F4 = '\ue034'
F5 = '\ue035'
F6 = '\ue036'
F7 = '\ue037'
F8 = '\ue038'
F9 = '\ue039'
HELP = '\ue002'
HOME = '\ue011'
INSERT = '\ue016'
LEFT = '\ue012'
LEFT_ALT = '\ue00a'
LEFT_CONTROL = '\ue009'
LEFT_SHIFT = '\ue008'
META = '\ue03d'
MULTIPLY = '\ue024'
NULL = '\ue000'
NUMPAD0 = '\ue01a'
NUMPAD1 = '\ue01b'
NUMPAD2 = '\ue01c'
NUMPAD3 = '\ue01d'
NUMPAD4 = '\ue01e'
NUMPAD5 = '\ue01f'
NUMPAD6 = '\ue020'
NUMPAD7 = '\ue021'
NUMPAD8 = '\ue022'
NUMPAD9 = '\ue023'
PAGE_DOWN = '\ue00f'
PAGE_UP = '\ue00e'
PAUSE = '\ue00b'
RETURN = '\ue006'
RIGHT = '\ue014'
SEMICOLON = '\ue018'
SEPARATOR = '\ue026'
SHIFT = '\ue008'
SPACE = '\ue00d'
SUBTRACT = '\ue027'
TAB = '\ue004'
UP = '\ue013'
ZENKAKU_HANKAKU = '\ue040'
在爬虫种经常用的就是回车键、方向键、空格键
-
本文含有隐藏内容,请 开通VIP 后查看