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

嘉兴手机网站建设微信推广软件有哪些

嘉兴手机网站建设,微信推广软件有哪些,开发小程序要多少钱,广州建设交易中心网站大家好啊#xff0c;辣条哥又来猛货了#xff01; 小白慎入#xff01; 目录 环境安装1 测试样例2 基本配置2.0 基本参数2.1 设置窗口2.2 添加头部2.3 网页截图2.4 伪装浏览器 绕过检测2.5案例演示 触发JS2.6 boss直聘cookie反爬绕过实践2. 7滚动到页面底部 3 进阶使用4 数… 大家好啊辣条哥又来猛货了 小白慎入 目录 环境安装1 测试样例2 基本配置2.0 基本参数2.1 设置窗口2.2 添加头部2.3 网页截图2.4 伪装浏览器 绕过检测2.5案例演示 触发JS2.6 boss直聘cookie反爬绕过实践2. 7滚动到页面底部 3 进阶使用4 数据提取5 获取属性6 登录案例7 综合案例 Puppeteer 是 Google 基于 Node.js 开发的一个工具而 Pyppeteer 又是什么呢它实际上是Puppeteer 的 Python 版本的实现但它不是Google 开发的是一位来自于日本的工程师依据Puppeteer 的一些功能开发出来的非官方版本。 在 Pyppetter 中实际上它背后也是有一个类似 Chrome 浏览器的 Chromium 浏览器在执行一些动作进行网页渲染首先说下 Chrome 浏览器和 Chromium 浏览器的渊源。 总的来说两款浏览器的内核是一样的实现方式也是一样的可以认为是开发版和正式版的区别功能上基本是没有太大区别的。 环境安装 pip install pyppeteer注意 支持异步需要3.5以上的解释器 import pyppeteer print(pyppeteer.__chromium_revision__) # 查看版本号 print(pyppeteer.executablePath()) # 查看 Chromium 存放路径 # pyppeteer-install 帮助你去安装谷歌如果无法启动需要手动改文件路径 官方网站https://miyakogi.github.io/pyppeteer/reference.html 1 测试样例 from pyppeteer import launch import asyncio import time async def main(): # 启动一个浏览器 browser await launch(headlessFalse,args[--disable-infobars,--windowsize1920,1080]) # 创建一个页面 page await browser.newPage() # 跳转到百度 await page.goto(http://www.baidu.com/) # 输入要查询的关键字type 第一个参数是元素的selector第二个是要输入的关键字 await page.type(#kw,pyppeteer) # 点击提交按钮 click 通过selector点击指定的元素 await page.click(#su) time.sleep(3) await browser.close() asyncio.get_event_loop().run_until_complete(main())2 基本配置 2.0 基本参数 params{ # 关闭无头浏览器 headless: False, dumpio:True, # 防止浏览器卡住 ruserDataDir:./cache-data, # 用户文件地址 args: [ --disable-infobars, # 关闭自动化提示框 --window-size1920,1080, # 窗口大小 --log-level30, # 日志保存等级 建议设置越小越好要不然生成的日志占用的空间会 很大 30为warning级别 --user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36, --no-sandbox, # 关闭沙盒模式 --start-maximized, # 窗口最大化模式 --proxy-serverhttp://localhost:1080 # 代理 ], }2.1 设置窗口 # UI模式 频闭警告 browser await launch(headlessFalse, args[--disable-infobars]) page await browser.newPage() await page.setViewport({width: 1200, height: 800})2.2 添加头部 await page.setUserAgent(Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5)2.3 网页截图 page.screenshot(pathexample.png)2.4 伪装浏览器 绕过检测 Object.defineProperty() 方法会直接在一个对象上定义一个新属性或者修改一个对象的现有属性并 返回此对象。 # 伪装 await page.evaluateOnNewDocument(() { Object.defineProperties(navigator, { webdriver:{ get: () false } })}) await page.goto(https://intoli.com/blog/not-possible-to-block-chromeheadless/chrome-headless-test.html)2.5案例演示 触发JS async def run(): browser await launch() page await browser.newPage() await page.setViewport({width: 1200, height: 800}) await page.goto(https://www.zhipin.com/job_detail/? query%E8%85%BE%E8%AE%AF%E7%88%AC%E8%99%ABcity101020100industryposition) dimensions await page.evaluate(() { return { cookie: window.document.cookie, } }) print(dimensions,type(dimensions)) asyncio.get_event_loop().run_until_complete(run())2.6 boss直聘cookie反爬绕过实践 import asyncio,requests from pyppeteer import launch async def run(): browser await launch() page await browser.newPage() await page.setUserAgent(Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5) await page.setViewport(viewport{width: 1536, height: 768}) await page.evaluateOnNewDocument(() { Object.defineProperties(navigator, { webdriver:{ get: () false } }) }) await page.goto(https://www.zhipin.com/job_detail/? query%E8%85%BE%E8%AE%AF%E7%88%AC%E8%99%ABcity101020100industryposition) dimensions await page.evaluate(() { return { cookie: window.document.cookie, } }) headets { user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36, cookie: dimensions.get(cookie) } res requests.get( https://www.zhipin.com/job_detail/? query%E8%85%BE%E8%AE%AF%E7%88%AC%E8%99%ABcity101020100industryposition, headersheadets) print(res.text)注boss主要是cookie token反爬还有IP监测 2. 7滚动到页面底部 await page.evaluate(window.scrollBy(0, document.body.scrollHeight))接下来看看它的参数简介 ignoreHTTPSErrors (bool)是否要忽略 HTTPS 的错误默认是 False。 headless (bool)是否启用 Headless 模式即无界面模式如果devtools 这个参数是 True 的 话那么该参数就会被设置为 False否则为 True即默认是开启无界面模式的。 executablePath (str)可执行文件的路径如果指定之后就不需要使用默认的 Chromium 了可 以指定为已有的 Chrome 或 Chromium。 slowMo (int|float)通过传入指定的时间可以减缓 Pyppeteer 的一些模拟操作。 args (List[str])在执行过程中可以传入的额外参数。 ignoreDefaultArgs (bool)不使用 Pyppeteer 的默认参数如果使用了这个参数那么最好通过 args 参数来设定一些参数否则可能会出现一些意想不到的问题。这个参数相对比较危险慎用。 handleSIGINT (bool)是否响应 SIGINT 信号也就是可以使用 Ctrl C 来终止浏览器程序默认 是 True。 handleSIGTERM (bool)是否响应 SIGTERM 信号一般是 kill 命令默认是 True。 handleSIGHUP (bool)是否响应 SIGHUP 信号即挂起信号比如终端退出操作默认是 True。 dumpio (bool)是否将 Pyppeteer 的输出内容传给 process.stdout 和 process.stderr 对象默 认是 False。 userDataDir (str)即用户数据文件夹即可以保留一些个性化配置和操作记录。 env (dict)环境变量可以通过字典形式传入。 devtools (bool)是否为每一个页面自动开启调试工具默认是 False。如果这个参数设置为True那么 headless 参数就会无效会被强制设置为 False。 logLevel (int|str)日志级别默认和 root logger 对象的级别相同。 autoClose (bool)当一些命令执行完之后是否自动关闭浏览器默认是 True。 loop (asyncio.AbstractEventLoop)事件循环对象。 3 进阶使用 import asyncio from pyppeteer import launch from pyquery import PyQuery as pq async def main(): browser await launch(headlessFalse) # 打开浏览器 page await browser.newPage() # 开启选项卡 # 输入地址访问页面 await page.goto(https://careers.tencent.com/search.html?keywordpython) # 调用选折器 await page.waitForXPath(//div[classrecruit-wrap recruit-margin]/div) # 获取网页源代码 doc pq(await page.content()) # 提取数据 title [item.text() for item in doc(.recruit-title).items()] print(title:, title) # 关闭浏览器 await browser.close() # 启动异步方法 asyncio.get_event_loop().run_until_complete(main())4 数据提取 # 在页面内执行 document.querySelector。如果没有元素匹配指定选择器返回值是 None J querySelector # 在页面内执行 document.querySelector然后把匹配到的元素作为第一个参数传给 pageFunction Jeval querySelectorEval # 在页面内执行 document.querySelectorAll。如果没有元素匹配指定选择器返回值是 [] JJ querySelectorAll # 在页面内执行 Array.from(document.querySelectorAll(selector))然后把匹配到的元素数组 作为第一个参数传给 pageFunction JJeval querySelectorAllEval # XPath表达式 Jx xpath # Pyppeteer 三种解析方式 Page.querySelector() # 选择器 css 选择器 Page.querySelectorAll() Page.xpath() # xpath 表达式 # 简写方式为 Page.J(), Page.JJ(), and Page.Jx()5 获取属性 提取目标地址https://pic.netbian.com/4kmeinv/index.html 所有的图片资源 async def mains1(): browser await launch(headlessFalse, args[--disable-infobars]) page await browser.newPage() await page.setUserAgent(Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5) await page.setViewport(viewport{width: 1536, height: 768}) await page.evaluateOnNewDocument(() { Object.defineProperties(navigator, { webdriver:{ get: () false } }) }) await page.goto(https://pic.netbian.com/4kmeinv/index.html) elements await page.querySelectorAll(.clearfix li a img) for item in elements: # 获取连接 title_link await (await item.getProperty(src)).jsonValue() print(title_link) await browser.close() asyncio.get_event_loop().run_until_complete(mains1())6 登录案例 import asyncio from pyppeteer import launch async def mains2(): browser await launch({headless: False, args: [--disable-infobars, - -window-size1920,1080]}) page await browser.newPage() await page.setViewport({width: 1920, height: 1080}) await page.goto(https://www.captainbi.com/amz_login.html) await page.evaluateOnNewDocument(() { Object.defineProperties(navigator, { webdriver:{ get: () false } }) }) await page.type(#username, 13555553333) # 账号 await page.type(#password, 123456) # 密码 await asyncio.sleep(2) await page.click(#submit,{timeout: 3000}) import time # await browser.close() print(登录成功) asyncio.get_event_loop().run_until_complete(mains2())7 综合案例 # encoding: utf-8author: 夏洛 QQ: 1972386194 site: https://www.tulingxueyuan.cn/ file: 唯品会.pyimport requests from lxml import etree from loguru import logger import pandas as pd from utils import ua import asyncio from pyppeteer import launch class Wph(object): def __init__(self,url,name): self.url url self.name name self.headers { user-agent: ua.get_random_useragent() } self.session requests.session() self.hadlnone lambda x:x[0] if x else async def main(self,url): global browser browser await launch() page await browser.newPage() await page.goto(url) text await page.content() # 返回页面html return text def spider(self): df pd.DataFrame(columns[品牌, 标题, 原价, 现价, 折扣]) # 发起HTTP请求 # https://category.vip.com/suggest.php? keyword%E5%8F%A3%E7%BA%A2brand_sn10000359 res self.session.get(self.url,params{keyword:self.name},headers self.headers,verifyFalse) html etree.HTML(res.text) url_list html.xpath(//div[classc-filter-groupcontent]/div[contains(class,c-filter-group-scroll-brand)]/ul/li/a/href) # 迭代品牌URL地址 for i in url_list: ua.wait_some_time() # 驱动浏览器 请求 page_html asyncio.get_event_loop().run_until_complete(self.main(http: i)) # 获取网页源代码 page etree.HTML(page_html) htmls page.xpath(//section[idJ_searchCatList]/div) # 迭代商品URL列表 for h in htmls[1:]: # 评判 pingpai self.hadlnone(h.xpath(//div[contains(class,cbreadcrumbs-cell-title)]/span/text())) # 标题 title self.hadlnone(h.xpath(.//div[contains(class,cgoods-item__name)]/text())) # 价格 原价 y_price self.hadlnone(h.xpath(.//div[contains(class,cgoods-item__market-price)]/text())) # 卖价 x_price self.hadlnone(h.xpath(.//div[contains(class,cgoods-item__sale-price)]/text())) # 折扣 zk self.hadlnone(h.xpath(.//div[contains(class,c-goodsitem__discount)]/text())) logger.info(f品牌{pingpai}标题{title}原价{y_price}现价 {x_price}折扣{zk}) # 构造字典 pro { 品牌:pingpai, 标题:title, 原价:y_price, 现价:x_price, 折扣:zk } df df.append([pro]) df.to_excel(唯品会数据2.xlsx,indexFalse) return df def __del__(self): browser.close() if __name__ __main__: url https://category.vip.com/suggest.php name 香水 w Wph(url,name) w.spider()
http://www.dnsts.com.cn/news/48323.html

相关文章:

  • 网站空间域名续费有没有做logo的网站
  • 做招聘网站怎么运作网页设计与制作实训报告个人主页
  • 成都网页制作服务好网络营销中的seo与sem
  • 用自己服务器做网站用备案外贸网站开发定制
  • 域名买好了怎么做网站wordpress地址 灰色
  • 网站建设服务标语平面设计培训学校推荐
  • 自己做网站的优势广州番禺哪个公司建网站比较好
  • 广东工程建设信息网站网站改版换域名
  • 青岛市住房城乡建设局网站北京 网站建设 公司
  • 大型网站二次开发方案梅林固件做网站
  • 东莞市网站建设制作设计平台广西网站设计公司排行榜
  • 定制网站建设服务商网站宣传的作用
  • 网站开发频道构架珠海酒店网站建设公司
  • 互诺 网站好吗全国最大的网站建设公司
  • 路桥建设网站未来 网站开发 知乎
  • 聊城网站开发公司高端服装品牌排行榜
  • 做网站是要写代码的吗广州餐饮管理有限公司
  • 网站群建设厂家刷粉网站推广
  • 网站建设与管理需要哪些证书推荐一个国外好的网站模板
  • 小公司做网站需要注意什么问题凡客诚品官方网站
  • 自己做的网站怎么添加采集模块wordpress图文混排
  • 纸箱 技术支持 东莞网站建设wordpress调用当着文章tag标签
  • wordpress 中文文件企业网站改版seo
  • 石家庄网站建设公司排名松原企业网站建设
  • 优化网站收费标准广西棋牌软件开发公司
  • asp响应式h5网站源码下载公司经营范围有哪些
  • 湘潭网站建设 磐石网络荣誉商务网页
  • 电商网站里的水果图片怎么做的平面设计图片创意手绘
  • 个人网站代码编写驾校网站建设关键词
  • 温州网站优化wordpress修改了访问地址