年轮说 | Ciel Ni

很高兴认识你


  • 首页

  • 关于

  • 标签22

  • 分类9

  • 归档32

  • 搜索

近期爬虫项目整理

发表于 2018-09-03 | 分类于 爬虫笔记
  • 抖音个人主页爬虫
  • Instagram 个人主页爬虫
  • Twitter 模拟登录
  • 微信指数爬虫
  • Google Trends 爬虫
  • 百度指数爬虫

数据库查询的时区问题

发表于 2018-07-14 | 分类于 java笔记

需求

BI系统需要查询北京时间的某一天内公司所有设备激活记录,而数据库中记录的激活时间都是0时区的,系统需要不管在本地(GMT+8)还是服务器(GMT+0)上,都能准确查询导数据。

思路

首先我们需要得到北京时间某一天的起始时间和结束时间的时间戳:

1
2
3
// 获取时间区间
Timestamp startTime = TimeKit.toChineseTimestamp(date); // 该方法是自己封装的,即把字符串的时间按照时区转化成时间戳
Timestamp endTime = new Timestamp(startTime.getTime() + 24 * 60 * 60 * 1000L);

然后使用该时间戳区间编写mysql语句,值得注意的是,因为程序会自动把时间戳转化成字符串格式的时期去数据库进行比较,而这个转换是根据系统时区进行的,也就是说在本地和在服务器,转换出来的时间会差8个小时。所以需要根据当前系统的时区,对时间戳作调整:

1
2
3
4
// 因为mysql会将时间戳转换为字符串,所以减掉时区偏差
int offSet = TimeZone.getDefault().getRawOffset();
startTime.setTime(startTime.getTime() - offSet);
endTime.setTime(endTime.getTime() - offSet);
阅读全文 »

Java8 stream 中利用 groupingBy 进行多字段分组求和

发表于 2018-07-14 | 分类于 java笔记

从简单入手

Stream 作为 Java 8 的一大亮点,好比一个高级的迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。

Java 8 中的 Streams API 详解

我们可以利用stream对数据进行分组并求和。示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
List<String> items =
Arrays.asList("apple", "apple", "banana",
"apple", "orange", "banana", "papaya");
Map<String, Long> result =
items.stream().collect(
Collectors.groupingBy(
Function.identity(), Collectors.counting()
)
);
System.out.println(result);

输出如下:

1
{papaya=1, orange=1, banana=2, apple=3}
阅读全文 »

Beautiful Soup 文档搜索方法(find_all find)中 text 参数的局限与解决方法

发表于 2018-06-28 | 分类于 爬虫笔记

find_all方法介绍

find_all( name , attrs , recursive , text , **kwargs )

find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件。具体请看官方文档

Beautiful Soup 4.2.0 中文文档

其中,对于text参数的介绍如下:

通过 text 参数可以搜搜文档中的字符串内容和tag。与 name 参数的可选值一样, text 参数接受 字符串 、 正则表达式 、 列表、 True 。 看例子:

1
2
3
4
5
6
7
8
9
10
11
soup.find_all(text="Elsie")
# [u'Elsie']
soup.find_all(text=["Tillie", "Elsie", "Lacie"])
# [u'Elsie', u'Lacie', u'Tillie']
soup.find_all(text=re.compile("Dormouse"))
[u"The Dormouse's story", u"The Dormouse's story"]
soup.find_all("a", text="Elsie")
# [<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>]
阅读全文 »

Beautiful Soup 采坑之旅

发表于 2018-06-14 | 分类于 爬虫笔记

Beautiful Soup入门

Beautiful Soup是一个Python库,用来解析html和xml结构的文档。具体关于Beautiful Soup的介绍与使用,可以参考以下资料:

Python爬虫利器二之Beautiful Soup的用法

Beautiful Soup 4.2.0 中文文档

下面是我在使用Beautiful Soup时遇到的小问题。

阅读全文 »

像我这样的人 不配有人心疼

发表于 2018-05-25 | 分类于 随笔

反正就是在一个不太想学习的下午,觉得手机可用容量越来越小,遂想删掉点手机里的照片,于是花了一下午时间翻看了四年来手机里存的所有截图,看到最多的就是我截的无数张聊天记录。一开始就只是觉得这些聊天记录都挺搞笑的,直到我发现那些聊天的对象,几乎都被我弄丢了。

我突然意识到给聊天记录截图这个习惯的意义了,如果把好友删了,聊天记录就没有了,但截图是不会丢的。也许我早就清楚自己是个丢三落四的人,甚至会把朋友弄丢,所以才有了这个截图的习惯吧。

阅读全文 »

正则表达式的贪婪匹配与非贪婪匹配

发表于 2017-09-07 | 分类于 爬虫笔记

情景

之前写过一个简单的爬虫,每天获取公司insgtagram主页的粉丝数用来进行粉丝趋势的展示。代码很简单就是通过获取主页源代码后用正则表达式匹配其中的一串json数据,再用python的json解析库进行解析,从中获取粉丝数。

然而昨天这个爬虫报错了,我重新看了一下ins主页的网页源代码,发现其中增加了一段内容,这段内容正好被我匹配进去了。经过思考显而易见,这是贪婪匹配的问题。

阅读全文 »

【转载】时间就是一段路的小偷 by Allen Yin

发表于 2017-08-15 | 分类于 随笔

当穆里奇以梅开二度宣告自己四年后的回归,当博尔特用一个深情的吻告别征战多年的第四跑道,当鲁尼用一脚世界波攻入自己第二段埃弗顿生涯的进球,时间仿佛静止。四年,十年,十四年,我们总说时光走的太快,回过头来还是年少时的样子。

阅读全文 »

就算归来不再是少年

发表于 2017-07-31 | 分类于 随笔

毕业将近一个半月了,拖到了现在才终于开始总结自己的大学四年生活,其实好像也不算晚。首先,真的很感谢在大学这四年,更准确的说感谢这四年遇到的人和顺利度过本科阶段的自己。如果说高中三年开阔了我的知识面的话,那么大学四年的经历开阔的是我的视野。在南京大学的这四年里,我见到了不同的人和更大的世界,他们帮助我改变了很多固有的想法。

阅读全文 »

ZOL中关村在线手机参数爬虫

发表于 2017-07-28 | 分类于 爬虫笔记

需求

由于安卓手机的配置不尽相同,在公司推出安卓版360度全景相机 Insta360 Air 后,客服经常会收到来电,询问其手机型号是否适用该产品。大部分情况下顾客只知道自己的手机型号,却不知道其详细参数,这让客服的工作量大大增加。于是客服主管希望能把ZOL 中关村在线里的所有安卓系统的手机型号和其对应的参数通过爬虫搜集下来,做成Excel表格方便以后随时随地检索手机参数。

阅读全文 »
1234
Ciel Ni

Ciel Ni

起风了 唯有努力生存

32 日志
9 分类
21 标签
RSS
微博 GitHub 豆瓣 Twitter 知乎 Facebook 简书 Instagram 网易云音乐 E-Mail
友情链接
  • 王雨城的个人博客
  • Zia's blog
  • Wade Chen's blog
  • Kerita's blog
  • codeyee | 通往体面生活的路上
  • Diamond Zhang
0%
© 2022 Ciel Ni
由 Hexo 强力驱动 v3.4.0
|
主题 — NexT.Gemini v6.3.0
Hosted by Coding Pages