selenium模拟鼠标小结

滑块验证码的尝试博客地址: https://cloud.tencent.com/developer/article/1191105

 

ActionChains方法:

move_to_element(to_element)  ----  鼠标移动到某个元素

click_and_hold(on_element = None)  --- 点击鼠标左键,不松开

move_by_offset(xoffset, yoffset)   ---- 鼠标从当前位置移动到某个座标

release(on_element = None) --  在某个元素位置松开鼠标左键

perform()  ---- 执行操作,这个很重要,调用上面的方法后,一定要执行perform才能真正执行

 

崔庆才大神的网络爬虫干货总结链接: https://cloud.tencent.com/developer/article/1366434

从抓取、解析、存储、反爬、加速五个方面介绍了Python进行网络爬虫开发的相关知识点和技巧,

一。 抓取

服务端渲染:   使用基本的HTTP请求库就可抓取, 应用最多的是requests

客户端渲染方法有四种:

1. 寻找Ajax接口, 通过设置代理来查看接口比如 Fiddler/Charles;

2. 模拟浏览器执行, 适用于网络接口和逻辑较复杂情况, 直接抓可见数据, 比如 Selenium, Spynner, pyppeteer, PhantomJs等;

3. 直接提取JS数据, 直接使用正则表达式;

4. 模拟执行JS, 直接执行相关的JS来完成逻辑处理和接口请求,比如Selenium, PyExecJS, PyV8, js2py等库

二、 解析

HTML解析: 正则、XPath、 CSS selector

JSON解析: Json库

智能解析:  readability算法, 疏密度,Scrapyly自学习,深度学习

三、存储

文件: JSON, CSV, TXT等, csv, xlwt, json, pandas等

数据库: 关系型数据库,非关系型数据库, pymysql, pymssql, redis-py, pymongo等

搜索引擎: Solr, ElasticSearch 便于检索和实现文本匹配

云存储: 七牛云、阿里云、腾讯云等

四、 反爬  包括:非浏览器检测、封IP、验证码、封账号、字体反爬

封IP:  1. 手机站点、App站点;2. 使用代理; 3. 在代理基础上维护代理池;4. 搭建ADSL拨号代理

验证码:

1. 普通图形验证码, 使用OCR识别,机器学习、深度学习模型训练等,打码平台简便

2. 算术题验证码, 推荐 打码平台

3. 滑动验证码, 可以破解算法,也可以模拟滑动,或者对接打码平台(超级鹰),深度学习训练识别接口等;

4. 点触验证码, 推荐打码平台

5. 手机验证码,使用验证码分发平台

6. 扫二维码, 人工扫码或 对接打码平台

封账号:

1. 手机站或APP站点, 校验较弱;

2. 寻找无登录接口

3. 维护Cookies池, 使用批量账号模拟登陆, 实现链接:https://github.com/Python3WebSpider/CookiesPool

五、加速

多线程、多进程: threading或multiprocessing

异步: 使用asyncio, aiohttp, Tornado, pyspider

分布式: pyspider, Scrapy-Redis

优化: 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章