反爬虫-如何检测有没有使用Puppeteer

现在检测Puppeteer越来越难了,用户可以通过js对无头浏览器进行各种伪装,webdriver、webgl、plugins都很难检测到爬虫,在这里有一个新思路。 许多网页都有检测控制台是否开启的功能,其中大多数网页会直接禁用F12和右键,但这似乎并没有什么用处,因为浏览器也有其他办法开启控制台,偶然的机会,我看到这篇文章《判断控制台是否开启(chrome)》。其中提供了一个思路来检测控制...

Vuejs学习笔记

1:简介从两年前我学习web编程开始,我参与或完成了好几个web项目,这几个web项目都是比较简单的、给自己练习用的,而在开发过程中,我一直使用js+html+css+mdui。使用单纯的原生语言和最基础的一个css库开发,体验是很不好的,我一直想找一个好用的前端开发方案,让开发变得简单,直到认识了vue。 这不是我第一次学习vue,早在一年前,我就学习过一段时间,可惜当时没有好的web练手...

OpenOffice连接Mysql数据库

使用Openoffice连接mysql数据库总体体验不是很好,软件长时间处于未响应状态,并不建议使用它来操作mysql数据库,其他的数据库暂时不知道。 这里简单说下使用过程中的一些问题和解决办法。 Java环境。openoffice能够识别的java环境必须是32位的,因此坑爹的就是,我64位的一直没法被识别出来,于是下了一个32位的,通过软件上方的,工具->选项->openo...

安卓ToyVPN服务端从零开始读

0:导读这个程序是基于c++实现的一个简单VPN服务器,搭配ToyVPN安卓客户端食用。为了从零开始了解VPN的原理,我决定花时间来解读服务端的代码,并在此记录。 代码原址:ToyVPNServer.cpp 1:库说明1234567891011121314151617#include <stdio.h> //标准输入输出库,例如printf和scanf函数...

在控制器中用JS验证CSS_Selector和Xpath

0:引言使用Beautifulsoup和Selenuim等网页分析工具时,经常需要自己构造一个选择器,最常用的是CSS选择器和Xpath。如何验证选择器构造是否正确呢?我们可以直接在网页的开发者工具Console栏里使用JS代码来验证选择器的正确性。 1:CSS Selector验证12css_selector = '#bs_form_main input[value&#x...

RWTH自习室自动预定程序(RWTH_Lernraum)

1.开篇抢座程序分为两种,基于selenium的浏览器自动化程序,和基于requests库的http模拟请求程序。 为了成功运行程序,请确保你的计算机安装了Python。如何安装Python可自行网上搜索。两种程序命中率均比较高。可任选一种运行。 项目地址:https://github.com/xieqifei/AutoLernraum 2.基于Requests库的预定程序(正在测试当中,不...

如何利用Selenium实现更加高效的爬虫

1. 导语Selenium作为浏览器自动化工具,由于其可以直接执行js代码的优越性,经常被用做爬虫工具。但是,毕竟需要控制浏览器,低效率高内存始终是其难以甩掉的标签。在我个人爬虫开发中,对如何高效利用selenium有了一套个人的理解。 2. 用js注入代替selenium原生操作selenium库提供的execute_script方法使js注入成为可能。下面是一个js注入的例子 12js&...

Python如何准确的计算Http请求中的Content_Length

Content Length表示的是http请求中的数据长度,也就是requests中的data对应长度。 通常我们给requests传递的data是字典格式的,那么直接使用len(data)是无法获得准确的content length的。 在http中,data是以字符串的形式传递的。那么以下的字典格式的data对应的字符串是什么呢? 1234data = {'...

破解图片等资源跨域和防盗链阻拦

如果A站点想将B站点的img等资源放到A站点,通常会受到对方站点防盗链的阻拦。这里是我提供的一个思路,利用腾讯云函数的免费资源,完美绕开防盗链。因为图片不会受到浏览器的跨域阻拦,其他资源的跨域问题也能通过这个方法解决。 1:什么是防盗链?防盗链是由对方站点设置的,防止未受许可的站点直接引用对方站点的资源。比如这里有一个 ​https://www.baidu.com/abc.jpg​ 图片链接...

Selenium-Webdriver接口

越来越多的人开始使用Serverless构架搭建自己的应用,而Serverless的缺点显而易见,很难自定义运行时。当我尝试在云函数搭建一个基于Webdriver的爬虫程序时,我了解到,基于python的Selenium应用还无法在云函数上运行,这是由于云函数并没有安装chrome浏览器。 如果想在云函数上运行Selenium,则必须使用node.js 8.10版本+puppeteer插件。...