学习
实践
活动
专区
工具
TVP
写文章

基于puppeteer模拟登录抓取页面

第二种方式,直接抓取网站页面到本地服务器,然后浏览的是本机服务器上抓取页面,这种情况下页面已经过来了,我们就可以为所欲为了,首先我们绕过了X-FRAME-OPTIONS 为sameorgin的问题, 只需要解决js控制的问题,对于抓取页面来说,我们可以通过特殊的对应来处理(比如移除对应的js控制,或者添加我们自己的js);但是这种方式也有很多的不足:1、无法抓取spa页面,无法抓取需要用户登录授权的页面 ,无法抓取用户设置了白明白的页面等等。 抓取网站页面如何优化 这里我们针对抓取网站页面遇到的问题基于puppeteer做一些优化,提高抓取成功的概率,主要优化以下两种页面: spa页面 spa页面在当前页算是主流了,但是它总所周知的是其对搜索引擎的不友好 ;通常的页面抓取程序其实就是一个简单的爬虫,其过程通常都是发起一个http get 请求到用户网站(应该是用户网站服务器)。

2.3K100
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Splash抓取javaScript动态渲染页面

    一些Splash功能: 并行处理多个网页 获取HTML源代码或截取屏幕截图 关闭图像或使用Adblock Plus规则使渲染更快 在页面上下文中执行自定义JavaScript 可通过Lua脚本来控制页面的渲染过程 Splash是为Scrapy爬虫框架提供渲染javascript代码的引擎,它有如下功能:(摘自维基百科) (1)为用户返回渲染好的html页面 (2)并发渲染多个页面 (3)关闭图片加载,加速渲染 ( Client----相当于1 /Splash---相当于2 /Web server---相当于3 即:我们将下载请求告诉Splash ,然后Splash帮我们去下载并渲染页面,最后将渲染好的页面返回给我们 splash:wait方法---等待渲染的秒数 splash:evaljs方法---在当前页面下,执行一段js代码,并返回最后一句表达式的值 splash:runjs方法---在当前页面下,执行一段js 代码 splash:url方法---获取当前页面的url splash:html方法---获取当前页面的HTML文档 splash:get_cookies---获取cookies信息 四、在Scrapy

    1.1K30

    PHP模拟登陆抓取页面内容

    平时开发中经常会遇到抓取某个页面内容, 但是有时候某些页面需要登陆才能访问, 最常见的就是论坛, 这时候我们需要来使用curl模拟登陆。 大致思路:需要先请求提取 cookies 并保存,然后利用保存下来的这个cookies再次发送请求来获取页面内容,下面我们直接上代码 <? CURLOPT_RETURNTRANSFER, true); //执行请求 $ret = curl_exec($ch); //关闭连接 curl_close($ch); //第二步:附带cookie请求需要登陆的页面 ($ch, CURLOPT_RETURNTRANSFER, true); //执行请求 $ret = curl_exec($ch); //关闭连接 curl_close($ch); //打印抓取内容 var_dump($ret); 这样我们就抓取到了需要登陆才能访问页面的内容, 注意上面的地址只是一个示例,需要换成你想要抓取页面的地址。

    19900

    jsonp介绍与jsonp封装

    首先说个很多刚接触的人都想问的问题:     jsonp到底是什么? (看完本篇文章你就知道了) ---- 1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准; 2 、不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如<script>、、<iframe>); 3、于是可以判断 然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp. (动态执行回调函数) ---- 封装jsonp: function jsonp( url, fn ){ //构造一个函数到window上 var fnName="__jsonpFn

    1.5K50

    教程|Python Web页面抓取:循序渐进

    今天,要为大家带来Python中Web页面抓取教程。许多人看到代码就觉得头疼或是特别困难,其实Web爬虫是非常简单的。 从定义浏览器开始,根据在“ web驱动和浏览器”中选择的web驱动,应输入: 导入2.jpg 选择URL Python页面抓取需要调查的网站来源 URL.jpg 在进行第一次测试运行前请选择URL CTRL + U(Chrome)或右键单击打开页面源,选择“查看页面源”。找到嵌套数据“最近”的类。也可以按F12打开DevTools,选择“元素选取器”。 输出数据 Python页面抓取需要对代码进行不断的检查 输出1.jpg 即使在运行程序时没有出现语法或运行错误,也仍然可能存在语义错误。 更多的Lists Python页面抓取通常需要许多数据点 更多1.jpg 许多Web爬虫操作需获取几组数据。例如,仅提取电子商务网站上项目标题用处不大。

    56950

    jsonp温故

    更新时间:2022-05-04 今天重新学习之前写了半截的项目,其中提到了jsonp,当时也是查了很多资料,做了很多笔记,但是最近在写一个项目的时候,竟然遗忘了很多,所以特此做个总结,在下次再遇到jsonp jsonp原理介绍 jsonp就是为了解决前端的跨域问题而进行的一项设计,jsonp之所以能实现跨域,是因为它发送的不是ajax请求,它动态创建了script标签,script标签是不受同源策略限制的 JSONP是怎么产生的: 1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准; 2、不过我们又发现,Web 页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、、<iframe>); 3、于是可以判断,当前端如果想通过纯 -- 处理jsonp响应的全局回调函数的前缀 --> ·name(String) name of the global callback funcitions that handle jsonp responses

    7140

    Json和Jsonp

    前言   JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。 什么是Jsonp  1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准;  2、不过我们又发现,Web 页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、、<iframe>); 3、于是可以判断,当前阶段如果想通过纯 毕竟是jsonp的服务者都要面对很多服务对象,而这些服务对象各自的本地函数都不相同啊?我们接着往下看。 /Home/aehyok", dataType: "jsonp", jsonp: "callback", //传递给请求处理程序或页面的,用以获得jsonp

    50820

    使用PHP的正则抓取页面中的网址

    最近有一个任务,从页面抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法。要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢? 网页中的链接一般有三种,一种是绝对URL超链接,也就是一个页面的完整路径;另一种是相对URL超链接,一般都链接到同一网站的其他页面;还有一种是页面内的超链接,这种一般链接到同一页面内的其他位置。 那么现在清楚了,要抓取的绝对链接的典型形式可以概括为  http://www.xxx.com/xxx/yyy/zzz.html 每个部分可以使用的字符范围有明确的规范,具体可以参考RFC1738。 写到这个时候,基本上大部分的网址都能匹配到了,但是对于URL中带有参数的还不能抓取,这样有可能造成再次访问的时候页面报错。关于参数RFC1738规范中要求是用?

    1.3K20

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • Prometheus 监控服务

      Prometheus 监控服务

      与容器服务高度集成,高可用、全托管、免搭建的高效运维平台,兼容开源生态丰富多样的应用组件,减少开发和运维成本。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券