![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
YOYO__2018
越深入越迷茫
展开
-
4.19最新携程酒店价格爬虫
在最近的4月,携程的反爬又升级了,加入了canvas指纹识别,反selenium操作,更多的cookies加密,不过思路还是以往的思路,通过正确的参数请求获得加密脚本,从而获得正确的eleven参数,请求得到ComplexHtml,解密正确的html.目前js代码已经扒出来了,可实现脱机操作,稳定的解密eleven参数,稳定获取酒店价格相关信息,以下是截图:有需要的可...原创 2019-04-22 11:12:29 · 2243 阅读 · 0 评论 -
简要分析webpack打包后代码
简要分析webpack打包后代码 <!-- 作者区域 --> <div class="author"> <a class="avatar" href="/u/1e9a94bda转载 2019-02-19 15:12:41 · 861 阅读 · 0 评论 -
移动时代的前端加密
背景相比其他被编译成二进制的应用,前端这种纯文本应用,太容易被解读和窜改。前端为什么要加密?加密重要的目的是出于对商业利益的保护。由于作品太容易被复制窜改,容易会失去渠道先机窜改不限于以下:署名被移除或替换;链接地址被替换;文案被修改;广告被移除、替换或植入;...一些轻度游戏,用户只会玩一两次,生命周期也就两三天。如果你开发的游戏被人山寨且他的渠道比你更广,那么对...转载 2019-02-11 10:29:47 · 244 阅读 · 0 评论 -
房天下登录加密分析
分析做研究使用,非用作商业使用url="https://passport.fang.com/login.api"data ={ 'uid': "13913292465", 'pwd': "c88cff40bfdhgfjhgj2cf78352b8ca78789cdf0b2350a51967b2bb32d4c5905860863b7f119e43c4e4727f8dd650e5b4...原创 2019-01-03 10:57:07 · 808 阅读 · 0 评论 -
网易云音乐评论爬取
咳咳,终于要搞网易了,好激动啊我开始以为网易云的加密很简单,但是最终还是小看他了不得不说网易的程序员为了那些情怀满满的音乐评论还是下了很大的功夫的这里不放源码了,毕竟大家都不容易简单说下思路:encSecKey: 575a0c3e5f8b805c7a123b1065ea2769aac0072abb9cbe05306afa1016575bba6f9bf6a1d8ee4103501291de...原创 2019-01-07 13:37:50 · 1801 阅读 · 2 评论 -
SSl问题(未验证)
go to a diagnostics site like this one https://www.ssllabs.com/ssltest/analyze.htmlfind out what protocol the website uses (TLS1.0, TLS1.2, SSL3.0 (only?) …)find out what obsolete ciphers suite are...原创 2019-09-26 12:08:04 · 234 阅读 · 0 评论 -
7月更新 携程酒店价格房价爬取
5月,携程的反爬升级,新增加了加密参数目前js代码已经扒出来了,可实现脱机操作,稳定的解密eleven参数,稳定获取正确的酒店价格和其他相关信息,以下是截图,日期为5月8日:有需要加企鹅:1790017954...原创 2019-05-08 17:29:21 · 2294 阅读 · 1 评论 -
superagent 模块
SuperAgentsuperagent 是一个轻量的,渐进式的ajax api,可读性好,学习曲线低,内部依赖nodejs原生的请求api,适用于nodejs环境下.一个简单的post请求,并设置请求头信息的例子 request .post('/api/pet') .send({ name: 'Manny', species: 'cat' }) ...转载 2019-04-15 16:15:26 · 425 阅读 · 0 评论 -
最新requests模拟百度登录的干货
前言百度的模拟登陆网上有很多的教程,大家可以看下.几乎所有的教程都是到error_no=0,就说已经登录成功了.关于这个问题我开始也以为是这样的,不过自己最近在一次尝试登录百度网盘的时候发现,仅仅是error_no=0,是无法登录到百度的任何产品的.很多文章误人太深在这里就不得不说一下python requests的session了requests的session在一定的程度上可以很好的管理...原创 2018-12-08 13:35:43 · 1181 阅读 · 2 评论 -
SSLError
python: 2.7 requests: 2.19.1最近需要向第三方发送https请求爬取数据,需要绕过SSL,但是在此过程中发生了如下错误: requests.exceptions.SSLError: (“bad handshake: SysCallError(-1, ‘Unexpected EOF’)”,)原因:R...转载 2018-11-10 09:55:14 · 918 阅读 · 0 评论 -
rabbitmq 生产者和消费者
# 生产者import pika,timeconsumer = pika.BlockingConnection\ (pika.ConnectionParameters('localhost'))#创建socket连接channel = consumer.channel()#创建管道channel.queue_declare(queue='name')def backcall(...转载 2018-09-04 14:47:53 · 694 阅读 · 0 评论 -
新浪微博爬虫
没有登录的版本,怕的页面数量有限 主要是处理json的顺序,做一个记录from lxml import etreeclass Weibo(object): def __init__(self): self.headers = { "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleW...原创 2018-08-29 22:08:03 · 446 阅读 · 0 评论 -
解决Python2.x编码之殇
Python编码问题一直困扰了我许久,之前有过一些总结,但并不系统,比较凌乱。当然python2.x编码问题本身,便是剪不断理还乱。本篇将系统介绍python2.x编程中会遇到的一些编码问题,并给出解决方案。基于对编码问题的摸索了解,我也尝试写了一个编码转换模块Transcode,应该能解决绝大部分新手的疑难杂症。当然,python大神可以绕道而行,至于使用3.x的朋友,以后将会成文介绍。 p...转载 2018-09-04 13:47:43 · 251 阅读 · 0 评论 -
Python多线程详解
1、多线程的理解多进程和多线程都可以执行多个任务,线程是进程的一部分。线程的特点是线程之间可以共享内存和变量,资源消耗少(不过在Unix环境中,多进程和多线程资源调度消耗差距不明显,Unix调度较快),缺点是线程之间的同步和加锁比较麻烦。2、Python多线程创建在Python中,同样可以实现多线程,有两个标准模块thread和threading,不过我们主要使用更高级的threadi...转载 2018-09-04 13:14:08 · 623 阅读 · 0 评论 -
selenium 使用技巧
import time# 基本用法# from selenium import webdriver# driver = webdriver.Chrome()# driver.get("http:\\www.baidu.com")# driver.save_screenshot('./baidu.png')# time.sleep(2原创 2018-08-29 20:13:30 · 410 阅读 · 1 评论 -
Python3网络爬虫开发实战] 5.3.2-Redis存储
Redis是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单。本节中,我们就来介绍一下Python的Redis操作,主要介绍RedisPy这个库的用法。1. 准备工作在开始之前,请确保已经安装好了Redis及RedisPy库。如果要做数据导入/导出操作的话,还需要安装RedisDump。如果没有安装,可以参考第1章...转载 2018-08-28 21:52:13 · 555 阅读 · 0 评论 -
selenium+requests进行cookies保存读取操作
本篇我们就针对上一篇来说一下cookies的基本应用使用selenium模拟登陆百度from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriv...转载 2018-08-28 20:45:58 · 468 阅读 · 0 评论 -
解决xpath提取不规则网页的问题
在数据采集时,处理不规范的HTML页面是件令人头疼的事。因为不规范的HTML页面往往会引起xpath解析失败,造成得不到正确的数据。 这里引入tidylib,实例采用抓取慧聪网为例子,使用示例如下,from tidylib import tidy_documenturl="https://s.hc360.com/?w=%BF%D5%B5%F7"s=requests.Session()...原创 2018-08-27 20:42:05 · 3769 阅读 · 0 评论 -
scrapy的入门使用(一)
目标掌握如何创建项目掌握如何创建爬虫熟悉创建项目后每个文件的作用掌握pipeline的使用掌握scrapy中logging的使用1. scrapy项目实现流程创建一个scrapy项目:scrapy startproject mySpider生成一个爬虫:scrapy genspider itcast "itcast.cn提取数据:完善spider,使用xpath等...原创 2018-08-30 18:57:46 · 363 阅读 · 0 评论 -
scrapy的基础概念和流程
目标了解学习scrapy的目的能够说出异步和非阻塞的区别掌握scrapy的流程1. 为什么要学习scrapy通过前面的学习,我们已经能够解决90%的爬虫问题了,那么scrapy是为了解决剩下的10%的问题么,不是,scrapy框架能够让我们的爬虫效率更高那么剩下的10%怎么办呢?在课堂上我们学习的是通用的爬虫技能和爬虫方法,剩下的10%大家可能以后都不会遇到,或者在公司中再...原创 2018-08-30 18:50:59 · 342 阅读 · 0 评论 -
wuso爬虫--多线程+Queue
import reimport threadingimport timefrom queue import Queueimport requestsfrom lxml import etreeclass Wuso(object): def __init__(self): self.base_url = "https://wuso.me/forum-webcam...原创 2018-08-26 20:06:15 · 1365 阅读 · 0 评论 -
selenium +headlessChromedriver爬取网易云音乐专辑和播放数等
import timefrom selenium import webdriverclass Yunmusic(object): def __init__(self): self.base_url = "https://music.163.com/#/discover/playlist/" chrome_options = webdriver.Chr...原创 2018-08-06 18:48:58 · 634 阅读 · 0 评论 -
rabbitmq 爬虫
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010066807/article/details/51139867 ...转载 2018-09-04 16:51:58 · 487 阅读 · 0 评论 -
Python- 异步IO\数据库\队列\缓存\rabbitmq
本节内容Gevent协程Select\Poll\Epoll异步IO与事件驱动Python连接Mysql数据库操作RabbitMQ队列Redis\Memcached缓存Paramiko SSHTwsited网络框架  引子到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾下 &n...转载 2018-09-04 19:00:28 · 526 阅读 · 0 评论 -
裁判文书网爬虫Docid解密思路
1.使用node.js本地搭建web,运行js,返回解密结果.getValue()函数获取解密结果 // 创建服务器 http.createServer( function (request, response) { // 解析请求,包括文件名 var pathname = url.parse(request.url).pathname; // 输出请求的文件名 ...原创 2018-09-30 08:25:43 · 3624 阅读 · 5 评论 -
websocket-client的使用
1. 代理访问:import websocketws = websocket.WebSocket()# websocket的代理使用ws.connect("ws://example.com/websocket", http_proxy_host="proxy_host_name", http_proxy_port=3128)2. Long-lived connectionimpor...原创 2018-10-12 20:02:31 · 4071 阅读 · 0 评论 -
requests.request方法的使用
使用requests.request发送请求,实际是使用requests.sessions.Session().request(),自动管理cookie以下是源码:def request(method, url, **kwargs): """Constructs and sends a :class:`Request <Request>`. :param meth...原创 2018-09-21 19:18:35 · 3389 阅读 · 0 评论 -
使用rabbit实现分布式爬虫抓取妖火网
使用rebbit实现分布式爬虫的例子# -*- coding:utf-8 -*-# @Author: YOYO# @Time: 2018/10/11 10:40# @说明:import jsonimport reimport sysimport threadingimport timeimport tracebackfrom os import popenfrom lx...原创 2018-10-11 17:43:38 · 2378 阅读 · 0 评论 -
redis 作为消息队列实现分布式爬虫
redis 作为消息队列的例子:# -*- coding:utf-8 -*-# @Author: YOYO# @Time: 2018/10/11 15:38# @说明:import jsonimport reimport sysimport threadingimport tracebackimport timefrom lxml import etreeimport...原创 2018-10-11 17:25:07 · 913 阅读 · 0 评论 -
selenium 中的显示等待WebDriverWait与条件判断expected_conditions举例
#coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.wait import We...转载 2018-09-07 10:39:47 · 618 阅读 · 0 评论 -
scrapy果壳爬虫
# -*- coding: utf-8 -*-import scrapyfrom pprint import pprintclass GkSpider(scrapy.Spider): name = 'gk' allowed_domains = ['guokr.com'] start_urls = ['https://www.guokr.com/ask/highlig...原创 2018-09-09 17:19:49 · 207 阅读 · 0 评论 -
Python使用rabbitmq作爬虫的消息队列的一个例子
先来一张图,自己画的:使用consumer自己即是消费者也是生产者,可以开多线程,产生多个consumer,然既消费又产出 代码:只需要写callback里面的函数,以参数形式传到recv_task中就可以了 这里callback注意base_ack,及时通知rabbitmq,清理已经完成的任务,否则会造成队列堵塞.问题会一大堆呢import pikadef send_t...原创 2018-09-09 12:52:20 · 2292 阅读 · 0 评论 -
Python操作RabbitMQ初体验
Python操作RabbitMQ初体验(一) 2015-11-24来源:python人气:939 ...转载 2018-09-03 15:57:11 · 7407 阅读 · 2 评论 -
python daemon 守护进程
import sys, os def main(): """ A demo daemon main routine, write a datestamp to /tmp/daemon-log every 10 seconds. """ import time f = open("/tmp/daemon-log", "w") ...转载 2018-09-03 12:45:31 · 272 阅读 · 0 评论 -
os.fork()
Linux 操作系统提供了一个 fork() 函数用来创建子进程,这个函数很特殊,调用一次,返回两次,因为操作系统是将当前的进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的 PID。我们可以通过判断返回值是不是 0 来判断当前是在父进程还是子进程中执行。 在 Python 中同样提供了 fork()...转载 2018-09-03 12:43:42 · 314 阅读 · 0 评论 -
理解Queue队列中join()与task_done()的关系
在网上大多关于join()与task_done()的结束原话是这样的:Queue.task_done() 在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号Queue.join() 实际上意味着等到队列为空,再执行别的操作但是可能很多人还是不太理解,这里以我自己的理解来阐述这两者的关联。理解如果线程里每从队列里取一次,但没有执行task_...转载 2018-09-05 12:09:55 · 820 阅读 · 0 评论 -
mongodb插入数据时去重
用Python写网络爬虫原创 2018-09-02 16:59:03 · 3605 阅读 · 0 评论 -
wuso网站爬虫
需要fq,使用本地代理端口1080,可以使用ssr,仅供娱乐,切勿做非法用途import requestsfrom lxml import etreeimport multiprocessingimport osPATH = os.getcwd()def download(url,proxies,li,n): """ //dd/p/a/@href""" """//...原创 2018-06-15 19:28:39 · 2188 阅读 · 1 评论