当前位置: 首页 > news >正文

工业企业网站建设也的意义宁夏住房和建设厅网站

工业企业网站建设也的意义,宁夏住房和建设厅网站,聊天网站站怎么做,电商网站经营性备案由于Selenium流行已久#xff0c;现在稍微有点反爬的网站都会对selenium和webdriver进行识别#xff0c;网站只需要在前端js添加一下判断脚本#xff0c;很容易就可以判断出是真人访问还是webdriver。虽然也可以通过中间代理的方式进行js注入屏蔽webdriver检测#xff0c;但… 由于Selenium流行已久现在稍微有点反爬的网站都会对selenium和webdriver进行识别网站只需要在前端js添加一下判断脚本很容易就可以判断出是真人访问还是webdriver。虽然也可以通过中间代理的方式进行js注入屏蔽webdriver检测但是webdriver对浏览器的模拟操作输入、点击等等都会留下webdriver的标记同样会被识别出来要绕过这种检测只有重新编译webdriver麻烦自不必说难度不是一般大。 pyppeteer简介 由于Selenium具有这些严重的缺点。pyperteer成为了爬虫界的又一新星。 相比于selenium具有以下特点 异步加载 速度快 具备有界面/无界面模式 伪装性更强不易被识别为机器人 同时可以伪装手机平板等终端 ------------------- 虽然支持的浏览器比较单一但在安装配置的便利性和运行效率方面都要远胜selenium。 pyppeteer无疑为防爬墙撕开了一道大口子针对selenium的淘宝、美团、文书网等网站目前可通过该库使用selenium的思路继续突破毫不费劲。 Pyppeteer是一个基于Python的浏览器自动化库它使用了Puppeteer谷歌开发的Node.js工具的思路通过JavaScript代码操纵Chrome浏览器完成数据爬取和Web程序自动测试等任务。Pyppeteer使用Python异步协程库asyncio可以整合Scrapy进行分布式爬虫。 在Pyppeteer中实际上背后有一个类似Chrome浏览器的Chromium浏览器在执行一些动作进行网页渲染。Chromium是谷歌为了研发Chrome而启动的项目是完全开源的。二者基于相同的源代码构建功能上基本没有太大区别。 总之Pyppeteer依赖于Chromium这个浏览器来运行的。 pyppeteer安装及配置 由于 Pyppeteer 采用了 Python 的 async 机制所以其运行要求的 Python 版本为 3.5 及以上。 第一步在python中安装pyppeteer第三库 安装方式很简单命令行 pip 安装即可。 pip3 install pyppeteer 或者直接在IDE中进行安装 第二步输入以下两行代码 import pyppeteer print(pyppeteer.chromium_downloader.chromiumExecutable) 记住打印结果中圈出的数字这是chromium的borwser驱动版本号 第三步去下载对应版本的chromium的borwser 在这里使用的是淘宝镜像中的chromium 进入这个网址CNPM Binaries Mirror ​ 选择对应系统和对应的版本我这里是windows系统选择了我系统默认的588429  ​ 第四步borwser驱动下载之后将文件解压放入上面pycharam中指定的路径中 也就是‘C:/Users/xiaohuamiao/AppData/Local/pyppeteer/pyppeteer/local-chromium/588429/chrome-win32/chrome.exe’这个路径 需要手动在/pyppeteer/pyppeteer/文件下新建‘local-chromium’的文件夹、再新建588429的文件夹然后将解压的文件chrome-win32放在‘588429’这个文件下 ​ 第五步在python的库管理文件夹site-packages中pyppeteer文件 ​ 进入chromium_downloader.py文件并打开修改代码 ​ 这里是什么系统的就改什么后面的我是windows所以改windows的; 还有要注意一定是要把https改成http不然会报ssl的错  ​ #修改后代码 downloadURLs {linux: f{BASE_URL}/Linux_x64/{REVISION}/chrome-linux.zip,windows: fhttp://cdn.npm.taobao.org/dist/chromium-browser-snapshots/Mac/588429/chrome-win32.zip,win32: f{BASE_URL}/Win/{REVISION}/{windowsArchive}.zip,win64: f{BASE_URL}/Win_x64/{REVISION}/{windowsArchive}.zip, } 第六步在pycharm中执行安装 import pyppeteer.chromium_downloader pyppeteer.chromium_downloader.download_chromium() 等待安装、显示安装100%即可 验证一下是否安装成功在cmd中再次pyppeteer-install出现以下提示说明安装成功 pyppeteer的使用 pyppeteer的用法与Selenium基本一致这里就不再一一介绍了 滑动验证登陆demo 在上一篇Selenium的滑动验证登陆demo中web自动化 -- selenium及应用-CSDN博客 使用opencv简单快捷实现了计算缺口图片在背景图中的距离但是由于没有进行拟人化处理导致太快滑动对接上从而被京东识别到是爬虫程序呗拦截了这里继续使用pyppeteer以及做一下拟人化处理进行完整的滑动验证到登陆 完整代码如下 import random from pyppeteer import launch import asyncio import cv2 from urllib import requestasync def get_track():background cv2.imread(background.png, 0)gap cv2.imread(gap.png, 0)res cv2.matchTemplate(background, gap, cv2.TM_CCOEFF_NORMED)value cv2.minMaxLoc(res)[2][0]print(value)return value * 242 / 360async def main():browser await launch({headless: False, # headless指定浏览器是否以无头模式运行默认是True。args: [--window-size1366,768],})# 打开新的标签页page await browser.newPage()# 设置页面大小一致await page.setViewport({width: 1366, height: 768})# 访问主页await page.goto(https://passport.jd.com/new/login.aspx?)# evaluate()是执行js的方法js逆向时如果需要在浏览器环境下执行js代码的话可以利用这个方法# js为设置webdriver的值防止网站检测# await page.evaluate(alert(马上输入用户名密码了))# await page.evaluate(() { Object.defineProperties(navigator,{ webdriver:{ get: () false } }) })# await page.screenshot({path: ./1.jpg}) # 截图保存路径# 模拟输入用户名和密码,输入每个字符的间隔时间delay msawait page.type(#loginname, 324534534qq.com, {c: random.randint(30, 60)})await page.type(#nloginpwd, 345653332, {delay: random.randint(30, 60)})# page.waitFor 通用等待方式如果是数字则表示等待具体时间毫秒: 等待2秒await page.waitFor(2000)await page.click(div.login-btn)await page.waitFor(2000)# page.jevalselectorpageFunction#定位元素并调用js函数去执行img_src await page.Jeval(.JDJRV-bigimg img, elel.src)temp_src await page.Jeval(.JDJRV-smallimg img, elel.src)request.urlretrieve(img_src, background.png)request.urlretrieve(temp_src, gap.png)# 获取gap的距离distance await get_track()# Pyppeteer 三种解析方式Page.querySelector() # 选择器Page.querySelectorAll()Page.xpath() # xpath 表达式# 简写方式为Page.J(), Page.JJ(), and Page.Jx()el await page.J(div.JDJRV-slide-btn)# 获取元素的边界框包含x,y坐标box await el.boundingBox()await page.hover(div.JDJRV-slide-btn)await page.mouse.down()# steps 是指分成几步来完成steps越大滑动速度越慢await page.mouse.move(box[x] distance random.uniform(30, 33), box[y], {steps: 100})await page.waitFor(1000)await page.mouse.move(box[x] distance 29, box[y], {steps: 100})await page.mouse.up()await page.waitFor(2000)await asyncio.sleep(3600)if __name__ __main__:asyncio.run(main()) 代码执行后如下 因为我输入的账号和密码都是错误的所以滑块验证成功之后得到响应提示账号密码不匹配 说明登陆已经发送成功了
http://www.hkea.cn/news/14591265/

相关文章:

  • 快速装修公司优化型网站是什么意思
  • 单机做游戏 迅雷下载网站关键词优化和seo
  • 站长统计软件直播视频网站源码
  • 鼓楼做网站视频拍摄流程
  • 温州网站建设模板下载免费手机网站酷站
  • 太原电商网站设计深圳极速网站建设电话
  • 专业做网站的页面设计深圳建筑协会
  • 学校网站建广州网站建设广州
  • 网站的图片水印怎么做广西东晋建设有限公司网站
  • 温州网站建设有限公司html代码做的网站
  • ios7风格网站上海教育网站建设
  • 国外 网站 源码备案信息修改网站名称
  • 手机网站绑定辽宁建设工程招标信息网
  • 贵阳公司网页网站建设电子商务网站有那些功能
  • 制作手机网站哪家好网站快速网站推广
  • 重庆建设银行官方网站首页成都建网站
  • 2024免费网站推广大全提高工作效率整改措施
  • 河北网站建设哪里好如何建立论坛网站
  • 网站品牌推广公司新媒体管家
  • 公司网站域名续费队标logo设计简单
  • 建筑工程招投标网站平面设计师需要会什么软件
  • 网页小游戏的网站稻香村网站建设
  • 北京 个人网站 备案wordpress积分
  • 长尾关键词搜索网站阳高网站建设
  • 做图的软件网站page转wordpress
  • 网站描文本浙江交工宏途交通建设有限公司网站
  • 高质量的南昌网站建设android电影网站开发
  • 专业网站建设需要多少钱找人注册公司需要多少钱
  • 站长工具ip地址查询重庆大型的网站建设
  • 佛山网站建设多少钱常见的网络营销方法有哪些