weibo

如何科学的抢红包:年末致富有新招,写个程序抢红包

为君一笑 提交于 2020-03-05 12:08:23
0×00 背景 今天拜读了来自IDF实验室的《如何科学的抢红包:年末致富有新招,写个程序抢红包》,自己这段时间正在学习爬虫的相关知识,对scrapy框架有所了解,就在此代码基础上加进了scrapy,利用scrapy对文章中的“0×04 爬取红包列表”进行了重写。 0×01 scrapy框架 Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。 Scrach,是抓取的意思,这个Python的爬虫框架叫Scrapy,大概也是这个意思吧,就叫它:小刮刮吧。 简单的一句话:利用scrapy可以很简单的写出爬虫。 0×02 微博登入、红包可用性检查、指定红包抓取模块 这几个模板我单独放在一个weibo类中,方面后面的scrapy的调用分析 微博登入这块,可以参照 http://www.tuicool.com/articles/ziyQFrb 这篇文章,里面很详细的记录了微博登入的全过程 代码copy大牛,并在此基础上进行了简单的修改:使用requests库进行页面的请求。 #-

使用 scrapy 爬取 微博热搜

╄→尐↘猪︶ㄣ 提交于 2020-03-03 17:16:32
安装 pip install Scrapy 创建项目 scrapy startproject weiboHotSearch 创建爬虫 cd weiboHotSearch scrapy genspider weibo s.weibo.com 编写Item 修改weiboHotSearch中的items.py,添加item import scrapy class WeibohotsearchItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass keyword = scrapy.Field() url = scrapy.Field() count = scrapy.Field() 编写爬虫 修改 start_urls ,注意为list格式 使用 xpath 解析数据 xpath语法可参考 https://www.w3school.com.cn/xpath/xpath_syntax.asp 解析数据时,可运行 scrapy shell "https://s.weibo.com/top/summary" 调试xpath 引入 Item ,将数据以 Itme 对象返回 执行 scrapy crawl weibo 运行爬虫 运行结果如下: weibo.py

Ajax与JSON的一些总结

五迷三道 提交于 2020-02-25 01:53:58
Ajax与JSON的一些总结 1.1.1 摘要 Ajax技术的核心是 XMLHttpRequest 对象(简称XHR),可以通过使用XHR对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现。虽然名字中包含XML,但Ajax通讯与数据格式无关,所以我们的数据格式可以是XML或JSON等格式。 XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下: 在不重新加载页面的情况下更新网页 在页面已加载后从服务器请求数据 在页面已加载后从服务器接收数据 在后台向服务器发送数据 本文目录 XMLHttpRequest的用法 Ajax同源请求 同源策略与跨源策略 Ajax跨源请求 1.1.2 正文 XMLHttpRequest是一个JavaScript对象,它是由微软设计,并且被Mozilla、Apple和Google采纳,W3C正在标准化它。它提供了一种简单的方法来检索URL中的数据。 我们要创建一个XMLHttpRequest实例,只需new一个就OK了: //// Creates a XMLHttpRequest object. var req = new createXHR(); 也许有人会说:“这可不行啊!IE6不支持原始的XHR对象”,确实是这样,我们在后面将会介绍支持IE6或更老版本创建XHR对象的方法。 XMLHttpRequest的用法

linux 微博分类信息获取与格式化

做~自己de王妃 提交于 2020-02-22 04:56:19
1、需求: 获取微博网站ctg1_4188#”>http://d.weibo.com/102803_ctg1_4188-_ctg1_4188# 社会类媒体的名称信息。 构造成json格式,用于echart格式化显示。 2、分析&实现步骤 第一步:截获 地址: http://d.weibo.com/?topnav=1&mod=logo&wvr=6 获取关键名称及链接(下面5行代码非原创,效率非常高): var selector='.WB_info'; var a=document.querySelectorAll(selector+' a'); for(var i =0; i < a.length; i++){ console.log(a[i].href+" "+a[i].innerText); } 1 2 3 4 5 如下: VM7557:5 http://weibo.com/rmwfjpd?refer_flag=1028035010_ 人民网福建频道 VM7557:5 http://company.verified.weibo.com/verify/orgapply VM7557:5 http://sports.weibo.com/olympics2016 VM7557:5 http://weibo.com/thepapernewsapp?refer_flag

数据库的八步

 ̄綄美尐妖づ 提交于 2020-01-16 14:06:05
1.载入JDBC驱动程式 在JDK中,名称为"Sun.jdbc.odbc.JdbcOdbcDriver",可以使用"java.lang"套件下的 Class.forName()方法载入。 2.透过DriverManager类別建立Connection物件 于"java.sql"套件下可以运用到此JDBC API,其中的DriverManager类別会依据"jdbc.drivers" 系统属性值植入指定的JDBC Driver。 范例: Connection con = DriverManager.getConnection("jdbc:odbc:test"); 其中ODBC为桥接器,也就是Type 1,另外"test"为资料库来源名称。 3.透过Connection物件建立Statement物件 取得资料来源的Connection物件后,接下来要准备建立一个Statement物件,SQL语法如下: Statement stmt = con.createStatement(); 如要执行有SQL子句的语法,则需改用PreparedStatement presm = con.prepareStatement(sql); 4.透过Statement 物件执行SQL叙述(Insert, Modify, Delete, Query,Create Table等) 5

dumpsys详解

假如想象 提交于 2020-01-14 12:28:59
dumpsys命令用法 dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。 一、 dumpsys命令 1.1 服务列表 不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令: dumpsys -l 。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令: service list 。 表一: 服务名 类名 功能 activity ActivityManagerService AMS相关信息 package PackageManagerService PMS相关信息 window WindowManagerService WMS相关信息 input InputManagerService IMS相关信息 power PowerManagerService PMS相关信息 batterystats BatterystatsService 电池统计信息 battery BatteryService 电池信息 alarm AlarmManagerService 闹钟信息 dropbox DropboxManagerService 调试相关 procstats ProcessStatsService 进程统计 cpuinfo CpuBinder

修改iphone微博的GPS位置(iOS6.1.2)

柔情痞子 提交于 2020-01-09 22:24:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 修改iphone微博的位置(iOS6.1.2) 设备与环境: iOS6.1.2(需要越狱,安装openSSH, dbg,nano) sina微博客户端,我这里使用的是3.3.6 iTouch4, 8G MacOS 10.7.4(需要安装Hopper Disassembler, XCode with command tools) 步骤 越狱,安装openSSH, 安装gdb ,cycript,adv-cmds 在cydia添加源cydia.radare.org, 更新gdb到1708 下载dumpdecrypted https://github.com/stefanesser/dumpdecrypted 然后进入程序目录 修改根据你的XCode安装环境修改Makefile,修改其中BIN, GCC, SDK参数  编译dumpdecrypted,然后scp dumpdecrypted 到 root@iTouch_IP_Address:/var/root/ 远程连接到iTouch设备 ssh root@iTouch_IP_Address 检查dumpdecrypted是否已经拷贝到root目录 运行dumpdecrypted,获得微博的解密版本  DYLD_INSERT_LIBRARIES

Sina微博OAuth2框架解密

▼魔方 西西 提交于 2020-01-09 22:18:00
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 自从sina微博oauth2出来以后, 第三方集成开发简单了很多. Oauth2不像oauth1一样需要后台httpclient请求那么麻烦, 一切都可以在前台使用ajax实现了. 很多人觉得蹊跷, 对于一个第三方应用, 如何不走后台,而在前台使用ajax, 来获取access token? 又如何向sina发起get或post请求? 这其中最难解决的问题当属跨域问题. 这篇文章将彻底解决这些疑问. OAuth OAuth为一种授权认证机制. 它牵扯到服务提供方(sina weibo), 用户, 第三方应用(比如糗事百科). 第三方应用想方便用户可以在它的应用里面直接访问自己的weibo信息,还可以把第三方的信息发送到weibo, 比如转发糗事到sina weibo. 实现这个功能, 首先需要第三方应用拥有用户和sina的授权. 在拿到授权以后,第三方应用才能实现集成功能. 为什么不直接给第三方用户密码而用授权机制, 这种问题就不罗嗦了. 拿糗百为例,授权的过程为: 1, 糗百打开一个window或iframe, location指向weibo oauth授权界面. 2, weibo授权界面是在sina的域名下,是由sina的服务器控制的. 授权界面要求用户填写sina的账户,并确认授权. 3, 用户确认以后,

爬虫链接编码

为君一笑 提交于 2020-01-09 16:44:46
from urllib import parsekey_word = "中文"url = 'https://s.weibo.com/weibo/' + parse.quote(key_word,encoding='utf8')print(url)#https://s.weibo.com/weibo/%E4%B8%AD%E6%96%87 key_word2= '简体中文'print(parse.urlencode({'key':key_word2},encoding='utf8'))print(parse.quote(key_word2))编码urlencode、quote,解码unquote# key=%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87# %E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87 来源: https://www.cnblogs.com/python001-vip/p/12171976.html

PAT甲级1076. Forwards on Weibo

白昼怎懂夜的黑 提交于 2019-12-30 18:28:31
PAT甲级1076. Forwards on Weibo 题意: 微博被称为中文版的Twitter。微博上的一位用户可能会有很多关注者,也可能会跟随许多其他用户。因此,社会网络与追随者的关系形成。当用户在微博上发布帖子时,他/她的所有跟随者可以查看和转发他/她的帖子,然后可以由他们的追随者再次转发。 现在给出一个社交网络,假定只计算间接跟随者的L个级别,您应该计算任何特定用户的最大潜在潜在金额。 输入规格: 每个输入文件包含一个测试用例。对于每种情况,第一行包含2个正整数:N(<= 1000),用户数; 和L(<= 6),计数的间接追踪者的数量。因此,假设所有用户的编号从1到N.然后N行遵循,其格式如下: M [i] user_list [i] 其中M [i](<= 100)是用户[i]遵循的总人数; user_list [i]是用户[i]遵循的M [i]个用户的列表。 保证没有人能跟随自己。所有的数字都被空格隔开。 然后最后给出肯定的K,然后是K UserID的查询。 输出规格: 对于每个UserID,您应该在一行中打印此用户可以转发的最大潜在数量, 假设每个可以查看初始帖子的人都会转发一次,只计算L个间接追踪者。 思路: 队列bfs或者Dijkstra ac代码: C++ // pat1076.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h