phantomjs

Python模拟登录的几种方法

一世执手 提交于 2020-03-24 08:18:25
3 月,跳不动了?>>> 目录 方法一:直接使用已知的cookie访问 方法二:模拟登录后再携带得到的cookie访问 方法三:模拟登录后用session保持登录状态 方法四:使用无头浏览器访问 正文 方法一:直接使用已知的cookie访问 特点:   简单,但需要先在浏览器登录 原理:   简单地说,cookie保存在发起请求的客户端中,服务器利用cookie来区分不同的客户端。因为http是一种无状态的连接,当服务器一下子收到好几个请求时,是无法判断出哪些请求是同一个客户端发起的。而“访问登录后才能看到的页面”这一行为,恰恰需要客户端向服务器证明:“我是刚才登录过的那个客户端”。于是就需要cookie来标识客户端的身份,以存储它的信息(如登录状态)。   当然,这也意味着,只要得到了别的客户端的cookie,我们就可以假冒成它来和服务器对话。这给我们的程序带来了可乘之机。   我们先用浏览器登录,然后使用开发者工具查看cookie。接着在程序中携带该cookie向网站发送请求,就能让你的程序假扮成刚才登录的那个浏览器,得到只有登录后才能看到的页面。 具体步骤: 1.用浏览器登录,获取浏览器里的cookie字符串   先使用浏览器登录。再打开开发者工具,转到network选项卡。在左边的Name一栏找到当前的网址,选择右边的Headers选项卡,查看Request Headers

linux系统(CentOS)下安装PhantomJS

[亡魂溺海] 提交于 2020-03-21 16:45:02
1、查看linux系统位数,来判断下载适配的PhantomJS;   输入命令:# lsb_release -a 2、下载PhantomJS;   从官网http://phantomjs.org/download.html下载linux64位的安装包即 phantomjs-2.1.1-linux-x86_64.tar.bz2 3、 重命名   #mv phantomjs-2.1.1-linux-x86_64.tar.bz2 phantomjs 4、上传到服务器并解压   # tar xjf phantomjs-2.1.1-linux-x86_64.tar.bz2 5、安装依赖软件   # yum -y install fontconfig 6、建立软链接   # ln -s /data/tomcat/work/sxm/phantomjs/bin/phantomjs /usr/bin/ 7、验证是否安装成功:   # phantomjs --version 坑:解压后,文件夹为phantomjs-2.1.1-linux-x86_64,然后就建立软链接,检查报错:Segmentation fault 我懵了,难道是把服务器搞挂了。。。。 经过一顿检查后,发现服务器的其他功能是正常,悬着的心稍微放下了点;可是问题怎么解决呢? 然后就在网上狂翻教程,发现好多教程都有重命名这个步骤

spider基础知识

不羁的心 提交于 2020-03-18 03:29:30
1. 描述下scrapy框架运行的机制? 答:从start_urls里获取第一批url并发送请求,请求由引擎交给调度器入请求队列,获取完毕后,调度器将请求队列里的请求交给下载器去获取请求对应的响应资源,并将响应交给自己编写的解析方法做提取处理:1. 如果提取出需要的数据,则交给管道文件处理;2. 如果提取出url,则继续执行之前的步骤(发送url请求,并由引擎将请求交给调度器入队列...),直到请求队列里没有请求,程序结束。 2. scrapy和scrapy-redis有什么区别?为什么选择redis数据库? 答: 1) scrapy是一个Python爬虫框架,爬取效率极高,具有高度定制性,但是不支持分布式。 而scrapy-redis一套基于redis数据库、运行在scrapy框架之上的组件,可以让scrapy支持分布式策略,Slaver端共享Master端redis数据库里的item队列、请求队列和请求指纹集合。 2) 为什么选择redis数据库,因为redis支持主从同步,而且数据都是缓存在内存中的,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高。 3. 反爬虫的机制有哪些? 答: 1) User—Agent 2) 代理ip 3) 访问频率限制 4) 验证码处理 5) Cookie 6) 动态HTML数据加载 4. 实现模拟登录的方式有哪些? 答: 1)

ubuntu系统下面PhantomJS not found on PATH

浪尽此生 提交于 2020-03-17 20:50:14
完整报错如下: PhantomJS not found on PATH Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 Saving to /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 Receiving... ^C (python3.6) root@iZuf62cvmxv23irc7lrcobZ:~/saleor_docker/saleor-storefront# cnpm install phantomjs@02.1.1 ✔ Installed 1 packages ✔ Linked 11 latest versions [1/1] scripts.install phantomjs@02.1.1 run "node install.js", root: "/root/saleor_docker/saleor-storefront/node_modules/_phantomjs@2.1.1@phantomjs" PhantomJS not found on PATH Phantom installation failed TypeError: Path

gitbook导出markdown文件为pdf格式

做~自己de王妃 提交于 2020-03-15 18:06:15
前言 本人想完成如题所示的操作,可是兜兜转转在网上搜了好久,不是Linux下的教程就是mac OS下的教程,而且一大堆windows的教程能够说明白的寥寥无几,本着分享的态度,鄙人今天特整理教程如下: 一、安装nodejs 进入官网: http://nodejs.cn/download/,并点击如图所示找到对应的版本并下载安装包: 双击安装包安装nodejs,默认也把npm勾选安装上,选择自定义安装路径,例如:D:\Program Files\nodejs,这个时候nodejs应该已经被添加到环境变量了,如果没有可以自己手动添加。 查看nodejs版本: 执行npm -version可以查看版本,如下图: 二、下载gitbook工具 在安装之前可以先更改一下安装源,默认是国外的,改成国内的,否则后续安装你会有想哭的冲动~~ 打开D:\Program Files\nodejs\node_modules\npm\npmrc文件,增加如下配置: registry=http://registry.npm.taobao.org 保存配置。 然后输入命令: npm install gitbook-cli -g , 全局安装gitbook。 查看gitbook工具是否已经安装成功,使用命令:gitbook -V 同时这个命令会自动安装gitbook 出现如上图结果则说明此时gitbook安装成功

linux环境 安装chromedriver 和 phantomjs的方法

家住魔仙堡 提交于 2020-03-14 18:49:25
1 首先要下载浏览器驱动:   常用的是chromedriver 和phantomjs   chromedirver下载地址:   https://npm.taobao.org/mirrors/chromedriver   phantomjs下载地址:   http://phantomjs.org/download.html   使用chromedriver要保证有chrome浏览器 2 安装   phantomjs:     将下载好的文件 解压缩(此处版本用xxx代替了)     tar -xvf phantomjs-xxxx.tar.bz2     将压缩结果移动到系统中软件应该呆在的地方去(此处版本用xxx代替了)     sudo mv phantomjsxxx /usr/local/src/phantomjs     创建软连接到系统环境 这样就可以使用phantomjs命令了     sudo ln -sf /usr/local/src/phantojs/bin/phantomjs /usr/local/bin/phantomjs     将软连接 添加执行的权限     sudo chmod u+x,o+x /usr/local/bin/phantomjs     检验一下正常使用: 返回版本信息就代表能正常使用     phantomjs --version  

Python爬虫连载14-动态HTML、PhantomJS和Chromedriver

主宰稳场 提交于 2020-03-14 01:47:28
一、动态HTML 1.爬虫跟反爬虫 2.动态HTML连载 (1)JavaScript (2)jQuery (3)Ajax (4)DHTML (5)Python采集动态数据 从JavaScript代码入手采集​;Python第三方库运行JavaScript,直接采集你在浏览器中看到的页面 二、Selenium + PhantomJS 1.Selenium:web自动化测试工具 (1)​自动加载页面;(2)​获取数据;(3)截屏 ​(4)官方文档:http://selenium-python.readthedocs.io/index.html 2.PhantomJS (1)基于WebKit的无界面的浏览器 (2)​官方网站:http://phantomjs.org/download.html 3.Selenium库有一个WebDriver的API 4.WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取 """ 通过webdriver操作模拟进行查找 """ from selenium import webdriver import time #通过keys模拟键盘 from selenium.webdriver.common.keys import Keys #操作哪个浏览器就对哪个浏览器建立一个实例 #自动按照环境变量查找相应的浏览器 driver =

7,pyquery获取数据

半城伤御伤魂 提交于 2020-03-10 02:04:31
pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析 HTML 文档 参考网站 https://www.jianshu.com/p/770c0cdef481 https://pythonhosted.org/pyquery/css.html https://www.osgeo.cn/pyquery/index.html 初始化对象 html = """ <html lang="en"> <head> 简单好用的 <title>PyQuery</title> </head> <body> <ul id="container"> <li class="object-1">Python</li> <li class="object-2">大法</li> <li class="object-3">好</li> </ul> </body> </html> """ ##############字符串初始化 from pyquery import PyQuery as pq #初始化为PyQuery对象 doc = pq(html) print(type(doc)) print(doc) ####html 文件初始化 #filename参数为html文件路径 test_html = pq(filename = 'test.html') print(type

PhantomJS快速入门

只愿长相守 提交于 2020-03-08 08:17:10
本文简要介绍了PhantomJS的相关基础知识点,主要包括PhantomJS的介绍、下载与安装、HelloWorld程序、核心模块介绍等。由于鄙人才疏学浅,难免有疏漏之处,欢迎指正交流。   1、PhantomJS是什么?   PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。   PhantomJS官方地址:http://phantomjs.org/。   PhantomJS官方API:http://phantomjs.org/api/。   PhantomJS官方示例:http://phantomjs.org/examples/。   PhantomJS GitHub:https://github.com/ariya/phantomjs/。   2、PhantomJS下载与安装   官方下载地址:http:/

腾讯云上PhantomJS用法示例

我只是一个虾纸丫 提交于 2020-03-04 09:49:34
崔庆才 前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没天理了。所以,我们需要有一些好用的工具来帮助我们像浏览器一样渲染JS处理的页面。 其中有一个比较常用的工具,那就是 PhantomJS Full web stack No browser required PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast andnative support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。 好,接下来我们就一起来了解一下这个神奇好用的库的用法吧。 ps:服务器是 腾讯云 安装 PhantomJS安装方法有两种,一种是下载源码之后自己来编译,另一种是直接下载编译好的二进制文件。然而自己编译需要的时间太长,而且需要挺多的磁盘空间。官方推荐直接下载二进制文件然后安装。