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

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

Vuejs学习笔记

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

OpenOffice连接Mysql数据库

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

安卓ToyVPN服务端从零开始读

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

在控制器中用JS验证CSS Selector和Xpath

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

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 注入成为可能。下面是一...

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.jp...

Selenium-Webdriver接口

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