
万能爬虫
文章平均质量分 64
爬虫那些事
1024小神
不会就去学,学习是永远不会亏的(wx:lanxingme)
展开
-
ttwid、x-bogus、a-bogus、msToken、byted_acrawler等直播参数说明和获取方式
ttwid类似客户端id,即便是游客模式,也可以对页面数据进行埋点统计,通过收集ttwid下的用户行为数据,给与内容推荐和广告推荐。这个也是某节公司下的基础服务,所以生成的id,只要是某节下的服务都可以使用。获取方式:从直播间的html中获取。原创 2024-08-08 20:11:01 · 2030 阅读 · 0 评论 -
直播的js代码debug解析找到protobuf消息的定义
我们都知道直播的弹幕消息是通过websocket发送的,而且是通过protobuf传输的,那么这里面传输了哪些内容,这个proto文件又要怎么定义?每个消息叫什么,消息里面又包含有哪些字段,每个字段又是什么类型?都可以通过js查看得到。原创 2024-07-01 11:07:24 · 689 阅读 · 0 评论 -
从直播消息中找到对应的proto协议内容
这么多直播间的消息,我们该怎么从里面找到我们需要的消息定义呢?原创 2024-07-01 11:06:24 · 455 阅读 · 0 评论 -
protobufjs解析proto消息出错RangeError: index out of range: 2499 + 10 > 2499解决办法
使用websocket通讯传输protobuf消息的时候,decode的时候出错了:出现这种错误的时候,99%是因为proto里面的消息类型和服务端发送的消息类型不一致导致的。原创 2024-07-01 11:05:42 · 669 阅读 · 0 评论 -
调试解析直播弹幕消息protobuf内容,一步一步教你debug查看PushFrame和Response解码在哪里
我们知道直播间的弹幕消息是通过websocket传输的,而且传输的并不是明文数据,而是protobuf消息,至于为什么使用这个protobuf消息,因为它是二进制传输,更快更稳,相对于直播这种实时性比较高的要求,使用这种消息传输是非常合适的。原创 2024-06-29 15:13:09 · 1257 阅读 · 0 评论 -
在rust中使用reqwest获取响应里面的cookie,报错borrow of moved value: `response`value borrowed here after move
说的是先move了,然后再borrowed,因为move会转移response的所有权,转移所有权之后,就不能在原实例上租借了,这是rust中的规范。可以看到cookies上面绑定了一个生命周期`a,这个生命周期是和Response绑定的,所以当Response销毁的时候,这个cookie对应的也会销毁。确实是的,我在获取响应内容的时候使用了这个response实例和.text()方法,看一下这个方法里面的内容是啥?那是不是在这个cookie之前有某个地方使用并move了这个response实例?原创 2024-06-25 10:15:05 · 589 阅读 · 0 评论 -
pyppeteer模块经常使用的功能,相关操作案例
1.打开浏览器调用 launch 方法即可,相关参数介绍:ignoreHTTPSErrors (bool): 是否要忽略 HTTPS 的错误,默认是 False。headless (bool): 是否启用无界面模式,默认为 True。如果 devtools 这个参数是 True 的话,那么该参数就会被设置为 False。executablePath (str): 可执行文件的路径,如果指定之后就不需要使用默认的 Chromium 了,可以指定为已有的 Chrome 或 Chromium。原创 2024-06-24 22:42:23 · 1758 阅读 · 0 评论 -
Pyppeteer原理介绍和入门尝试
1.Chrome 浏览器和 Chromium 浏览器在 Pyppetter 中,实际上它背后也是有一个类似 Chrome 浏览器的 Chromium 浏览器在执行一些动作进行网页渲染,首先说下 Chrome 浏览器和 Chromium 浏览器的渊源。Chromium 是谷歌为了研发 Chrome 而启动的项目,是完全开源的。原创 2024-06-24 22:41:37 · 2619 阅读 · 0 评论 -
深入研究websocket直播中signature这个参数怎么来的,模拟自己生成一个
这是一个webmssdk.es5.js包里面的函数,所以需要将这个webmssdk.es5.js包下载到本地,然后集成到window对象上,就可以调用这个函数了,我这里写了一个demo:可以看到已经生成了值。上一节课我们已经找到了生成signature这个字段的代码位置,就是这个B函数,嗯......听起来好像有点奇怪,但是它确实叫B啊,笑死。不管了,看一下里面的逻辑是啥。V()其实会返回一个函数,这个函数可以传递两个参数,有了这两个参数传递过来,那我们就可以安心研究B里面的逻辑了。原创 2024-06-21 16:16:46 · 1036 阅读 · 6 评论 -
直播websocket签名signature字段生成逻辑,一步一步带你研究学习
我在这里做了一些注释,方便研究后续逻辑,我们这里看到了,l就是签名signature参数,所以搞出来l就可以了,但是l又依赖s和n,n是websocket_key很明显,那就继续研究s,但是s又依赖于t + a + r + o + ee.VERSION这五个,其中t + r + ee.VERSION = "1.0.14-beta.0"是明显的, 那就需要研究a + o是啥了,a是啥呢?是的,把这里面的逻辑搞清楚不是就可以搞到signature这个签名了嘛,好了,好好研究去吧,同学们,下课。原创 2024-06-21 11:41:04 · 820 阅读 · 0 评论 -
常用的1000个UserAgent列表,方便以后使用
字符串数组:(后面有原始数据)原创 2023-02-17 16:17:55 · 714 阅读 · 0 评论 -
在Linux中使用selenium
阅读目录安装chrome 安装依赖库 安装 chromedriver 代码测试安装chromeyum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm安装依赖库安装必要的库yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-font安装 chromedriverwget ht原创 2021-10-13 11:29:59 · 1477 阅读 · 0 评论 -
\n 在文本文件中和程序读取长度
\n 在txt文本文件中是占两个字节的,但是当使用Python程序使用len("\n") 的时候,就只统计1个字符,因为转译了要想使用原始字符串:可以使用content = repr("\n")原创 2021-10-13 11:27:48 · 1830 阅读 · 0 评论 -
python之Selenium库的使用
阅读目录一 什么是Selenium 二 selenium的基本使用一 什么是Seleniumselenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。selenium可以模拟真...原创 2021-10-12 13:59:11 · 912 阅读 · 0 评论 -
Mac安装selenium 并调试运行
一、安装selenium先使用:pip install selenium如果问题:提示未找到pipMacBook-Air ~ % pip install seleniumzsh: command not found: pip解决方案:sudo easy_install pip安装selenium(sudo pip uninstall selenium 卸载selenium)运行python解释器,执行import selenium,无异常表示安装成功二、安..原创 2021-10-12 12:32:33 · 1022 阅读 · 0 评论 -
爬虫代理哪家强?十大付费代理详细对比评测出炉!
前言随着大数据时代的到来,爬虫已经成了获取数据的必不可少的方式,做过爬虫的想必都深有体会,爬取的时候莫名其妙 IP 就被网站封掉了,毕竟各大网站也不想自己的数据被轻易地爬走。对于爬虫来说,为了解决封禁 IP 的问题,一个有效的方式就是使用代理,使用代理之后可以让爬虫伪装自己的真实 IP,如果使用大量的随机的代理进行爬取,那么网站就不知道是我们的爬虫一直在爬取了,这样就有效地解决了反爬的问题...原创 2019-06-01 17:51:21 · 2404 阅读 · 0 评论 -
python爬虫抓网页的总结
这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不用重复劳动了。1.最基本的抓站import urllib2content = urllib2.urlopen('http://XXXX').read()2.使用代理服务器这在某些情况下比较有用,比如IP被封了...原创 2019-05-29 18:13:59 · 490 阅读 · 0 评论 -
常见正则表达式剖析
常用的正则表达式,具体包括:邮编 电话号码,包括手机号码和固定电话号码 日期和时间 身份证 IP地址 URL Email地址 中文字符 对于同一个目的,正则表达式往往有多种写法,大多没有唯一正确的写法,本节的写法主要是示例。此外,写一个正则表达式,匹配希望匹配的内容往往比较容易,但让它不匹配不希望匹配的内容,则往往比较困难,也就是说,保证精确性经常是很难的,不过,很多时...原创 2019-05-24 14:59:56 · 859 阅读 · 0 评论 -
Python爬虫绕过登录的小技巧
前言很多时候我们做 Python 爬虫时或者自动化测试时需要用到 selenium 库,我们经常会卡在登录的时候,登录验证码是最头疼的事情,特别是如今的文字验证码和图形验证码。文字和图形验证码还加了干扰线,本文就来讲讲怎么绕过登录页面。登录页面的验证,比如以下的图形验证码。还有我们基本都看过的 12306 的图形验证码。绕过登录方法绕过登录基本有两种方...原创 2019-05-15 08:48:58 · 6809 阅读 · 0 评论 -
Python数据可视化:豆瓣电影TOP250
豆瓣电影TOP250,对于众多爬虫爱好者,应该并不陌生。很多人都会以此作为第一个练手的小项目。当然这也多亏了豆瓣的包容,没有加以太多的反爬措施,对新手比较友好。本期通过Scrapy框架,对豆瓣电影TOP250信息进行爬取。同时对获取的数据进行可视化分析,给大家带来一个不一样的TOP250。/ 01 / Scrapy之前了解了pysp...原创 2019-05-11 08:21:47 · 8500 阅读 · 0 评论 -
50 行代码爬取链家租房信息
最近自己开始学习数据分析的技术,但数据分析最重要的就是数据。没有数据怎么办?那就自己爬一些数据。大家一定要记得爬虫只是获取数据的一种手段,但如果不用一系列科学的方式去分析这些数据,那么爬去下来的数据是毫无用处的。所以爬虫进阶的方向很容易就可以对接到数据分析,我现在就是在往数据分析这个方向靠近。而今天我们要分析的是链家上海出租房一些信息,从中找出性价比高的租房信息。这是一个系列的文章,我会...原创 2019-05-10 15:59:11 · 1403 阅读 · 0 评论 -
这些年职业爬虫师教会我的技巧
随着 Python 越来越火爆爬虫这个行业也逐渐被人所重视起来,但市面上教的一些爬虫的技巧大多是一些基础类的知识,然而在实际的爬虫工作中你会遇到各种各样的问题。比如抓取到的网页字体显示乱码、某个网站使用了滑块验证码、某个网站使用了短信验证如何高效的解析数据、各个解析库又有什么区别、如何把数据插入到各个数据库中等等。所以我想把我在实际爬虫工作中会使用到的技巧,都分享给大家。让一些日后想...转载 2019-05-10 15:58:22 · 445 阅读 · 0 评论 -
推荐几款爬虫分析神器
Toggle JavaScript这款工具之前推荐过,这里就再推荐一次,凑个数吧。这是一款禁止异步加载的 Chrome 工具。就拿 QQ 音乐为例子,打开 Toggle JavaScript 之后,其数据一直无法加载,进度条一直打转。如下图,关闭之后,页面显示正常。使用后未使用JSONView这是一款 JSON 数据可视化工具,有...原创 2019-05-10 15:54:08 · 3503 阅读 · 0 评论 -
爬取数据不保存,就是耍流氓
我们初体验也过了,爬虫代码健壮性也升级为 PLUS 了。都分析到这个地步了,是不是感觉还少了点什么?对,我们还没保存数据呀?不保存,这不是瞎忙活吗?Itemsitem 是我们保存数据的容器,其类似于 python 中的字典。使用 item 的好处在于:Item 提供了额外保护机制来避免拼写错误导致的未定义字段错误。且看栗子:importscrapyclassDoubantop...原创 2019-05-10 15:50:45 · 385 阅读 · 0 评论 -
爬虫利器初体验 scrapy,爬取豆瓣电影
目录 前言 scrapy 数据流 scrapy 组件 爬取豆瓣电影 Top250 后记 送书后话 前言为什么要学 scrapy 呢?看下图中的招聘要求,就清楚了。很多招聘要求都有 scrapy,主要是因为 scrapy 确实很强。那到底强在哪里呢?请在文中找答案。scrapy 数据流首先我们先来...原创 2019-05-10 15:47:25 · 550 阅读 · 0 评论 -
教你实现一个可视化爬虫监控系统
# 1. 前言本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 Grafana 将爬虫抓取数据情况通过酷炫的图形化界面展示出来。在开始之前,先对 Grafana 和 InfluxDB 做一下简要的介绍: Grafana:是一个开源的分析和监控系统,拥有精美的web UI,支持多种图表,可以展...原创 2019-05-09 10:12:18 · 3671 阅读 · 2 评论 -
Python3 正则表达式(教程)
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re 模块也提供了与这些方法功能完...原创 2019-05-08 08:38:16 · 338 阅读 · 0 评论 -
为什么Python适合写爬虫?Python到底有啥好的?!
我用c#,java都写过爬虫。区别不大,原理就是利用好正则表达式。只不过是平台问题。后来了解到很多爬虫都是用python写的。因为目前对python并不熟,所以也不知道这是为什么。百度了下结果:1)抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整...原创 2019-05-08 08:34:47 · 417 阅读 · 0 评论 -
一次解决所有代理设置问题
代理其实也挺恼火的,因为各种协议啊,你要各种设置啊, http/https/ssh/git 都是各种配置,其实我只要有一个 socks5 的代理,然后你们所有需要走代理的程序都通过它就好了。谁特么有空天天在琢磨怎么配置各种不同协议的代理!只要我们想得到的,一般都有人做了。于是万能的github上找到了 proxychains , https://github.com/haad/proxyc...原创 2019-05-08 08:34:36 · 2547 阅读 · 0 评论 -
Python爬虫基础
前言Python非常适合用来开发网页爬虫,理由如下:1、抓取网页本身的接口相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我...原创 2019-05-07 10:57:10 · 344 阅读 · 0 评论 -
Python爬虫:爬取网站视频
python爬取百思不得姐网站视频:http://www.budejie.com/video/新建一个py文件,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...原创 2019-05-07 09:01:38 · 8190 阅读 · 2 评论 -
Python爬虫爬取小说网站
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Woolei# @File : book136_singleprocess.pyimport requestsimport timeimport osfrom bs4 import BeautifulSoupheaders = {'User-Agent':'Mozil...原创 2019-05-07 08:52:37 · 5962 阅读 · 1 评论 -
爬虫 (反爬)
再爬虫过程中,我们爬着爬着,他就会阻止你浏览页面,说明对方已经在页面上设置了反爬。而我,今天用 装饰器的方法,也制定了一个反爬!下面 ,则是详解代码def limit(seconds=1):# 定义内部方法def rate_limit(func):def func_limit(request):# 设置当前时间now =time.time()# 获取首次来访时间...原创 2019-05-07 08:52:22 · 744 阅读 · 0 评论 -
Scrapy 爬取 分析了 7 万款 App,全是没想到
摘要:使用 Scrapy 爬取豌豆荚全网 70,000+ App,并进行探索性分析。写在前面:若对数据抓取部分不感兴趣,可以直接下拉到数据分析部分。1 分析背景之前我们使用了 Scrapy 爬取并分析了酷安网 6000+ App,为什么这篇文章又在讲抓 App 呢?因为我喜欢折腾 App,哈哈。当然,主要是因为下面这几点:第一、之前抓取的网页很简单在抓取酷安网时,我们使用 ...原创 2019-05-06 09:01:15 · 574 阅读 · 0 评论 -
都不知道有多少页,还爬个锤子虫?
摘要:Requests 和 Scrapy 中分别用 For 循环和 While 循环爬取不确定页数的网页。写在前面:本文有不少超链接,建议点击底部「阅读原文」进行跳转查看。我们通常遇到的网站页数展现形式有这么几种:第一种是直观地显示所有页数,比如此前爬过的酷安、东方财富网,文章见:∞ 分析了酷安 6000 款 App,还有这么多好东西∞ 50 行代码爬取东方财富网百万行财务报...原创 2019-05-06 09:00:03 · 1531 阅读 · 0 评论 -
数据版“吐槽大会”: 国产综艺节目年终盘点
前言2018刚刚翻篇,每个人在2018都会留下许多难忘的回忆,有欢笑,有泪水,亦有成长。2018年诞生了许多的国产综艺节目,随着各大视频网站对自制综艺节目不断加大投入,我们有幸看到了更加多元化的综艺节目。本次文章灵感来源于央视此前一个非常特别的节目《第十放映室》,也是一个会暴露年龄的节目。在《第十放映室》中,大家可以看到对于一年当中留给大家“难忘”记忆的节目的评论,或是赞美,或...转载 2019-05-06 08:59:10 · 960 阅读 · 0 评论 -
一行代码搞定 Scrapy 随机 User-Agent 设置
摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单,本文就对这些方法进行汇总,提供一种只需要一行代码的设置方式。最近使用 Scrapy 爬一个网站,遇到了网站反爬的情况,于是开始搜索一些反爬措施,了解到设置随机 UA 来伪装请求头是一种常用的方式,这能够做到一定程度上避免网站直接识别出你...原创 2019-05-06 08:54:10 · 149 阅读 · 0 评论 -
爬虫断了?
摘要:使用 update_one() 而不是 insert_one()方法存储数据。相信你一定有过这样的经历:大晚上好不容易写好一个爬虫,添加了种种可能出现的异常处理,测试了很多遍都没有问题,点击了 RUN 开始正式运行 ,然后美滋滋地准备钻被窝睡觉,睡前还特意检查了下确认没有问题,合上眼后期待着第二天起来,数据都乖乖地躺在 MongoDB 中。第二天早上一睁眼就满心欢喜地冲到电脑前,结果发...原创 2019-05-06 08:53:11 · 702 阅读 · 0 评论 -
Python 一键爬取你所关心的书籍信息
前言平时看到的豆瓣爬虫基本都是爬豆瓣top100电影、某电影热评、top100图书、热门图书等,最近遇到的一个需求是根据一堆书名的列表(或者书名Excel文件)爬取对应的书目信息,也就是豆瓣图书页面上的出版社、出版时间、ISBN、定价、评分、评分人数等信息,再整合到pandas里进行处理,最后可以进行数据分析。需求来源最近整理书目的时候需要根据几百本书...原创 2019-05-03 17:12:42 · 792 阅读 · 0 评论 -
Python数据解读京东上最受欢迎的面包
前言什么样的面包品牌最好卖?什么样的口感最受欢迎?相信每一位喜欢面包的朋友都会关心这些问题。本文通过爬取京东面包类数据,一方面回答大家关于此前关于面包的各种问题,另一方面也带大家了解一份完整的数据报告,可以从中有所借鉴。数据爬取(部分代码)构建解析详情页的代理defdisguiser():'''构建解析详情页的代理''...原创 2019-05-03 10:06:02 · 505 阅读 · 0 评论