题记:homebrew在2020年初移除了对python2的支持,同时也移除了可以直接安装编译好的MySQLdb包。所以…
密码保护:2019第五号项目搭建指北
无法提供摘要。这是一篇受保护的文章。
再用dict.keys()就是狗
最近刷题用python比较多,毕竟list比其他语言里面array好用多了,当然也还有dict。
[微信公众号文章抓取.二]构建Anyproxy来获取数据
上回书说到,啊啊呸。上一篇文章已经确定了抓取的思路是通过微信app来访问公众号文章的历史页面。从中获得数据。那么这就需要一个网关来拦截并获取其中的数据,同时这个网关最好还是可以基于它进行二次开发的,这样我们就可以让它自动提取我们需要的数据用来进行下一步的处理。
[微信公众号文章抓取.一]探索各种办法的可行性
最近在公司做了一个这方面的项目,总结一下。顺便把项目没用到的方案做了个小demo
[WP插件]Hermit音乐播放器 的修复记录
之前的的小问题已经解决了,现在使用的是lwl12的Hermit X。并且也向你推荐去使用它。
python爬虫:提取页面时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | def date_check(date_str): now = datetime.date.today() zf_list = { '一': 1, '二': 2, '两': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9 } t = None if date_str.find('今天') >= 0: delta = datetime.timedelta(days=0) t = now - delta elif date_str.find('昨天') >= 0: delta = datetime.timedelta(days=1) t = now - delta elif date_str.find('前天') >= 0: delta = datetime.timedelta(days=2) t = now - delta elif date_str.find('天前') >= 0: day = re.findall(r'(?P<day>.*?)天前', date_str) if len(day) > 0 and day[0] in zf_list.keys(): delta = datetime.timedelta(days=zf_list[day[0]]) t = now - delta else: t = now elif date_str.find('周前') >= 0: week = re.findall(r'(?P<week>.*?)周前', date_str) if len(week) > 0 and week[0] in zf_list.keys(): delta = datetime.timedelta(weeks=zf_list[week[0]]) t = now - delta else: t = now else: r = re.findall(r'(?P<year>\d*?)年', date_str) if len(r) > 0: year = int(r[0]) else: year = now.year r = re.findall(r'(?P<m>.)月(?P<d>.)日', date_str) if len(r) > 0: month = int(r[0][0]) day = int(r[0][1]) else: month = now.month day = now.day t = datetime.date(year, month, day) return t.strftime('%Y-%m-%d %H:%M:%S') |
密码保护:2018酸酸乳搭建指北
无法提供摘要。这是一篇受保护的文章。
关于python中yield和协程的一点理解
yield一般应用于生成循环中的那个变量,一般这个变量是在代码编写时候就固定的或者是在生成器建立时候就传入的值 例如:
1 2 3 4 5 6 7 8 9 10 11 | def a(): i = 0 while True: yield i i += 2 def b(j): i = 0 while True: yield i i += j |
但是
使用正则表达式解析url
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #!/usr/bin/env python # -*- coding: utf-8 -*- import re class URL: def __init__(self, url): self.url = url.strip() match = re.search(r'(?P<protocol>.*?)://(?P<host>[1-9a-zA-z.]*?)(?::(?P<port>\d{1,5}))?/(?P<path>.*?)?(\?(?P<args>(?:[^=&" ]*=[^=&" ]*(?:&|$))*)?)', url) if not match: raise Exception('not find url') self.protocol = match.group('protocol') self.host = match.group('host') self.path = match.group('path') self.args = {} for arg in match.group('args').split('&'): a = arg.split('=') self.args[a[0]] = a[1] if __name__ == '__main__': url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python%20re&oq=python%2520re&rsv_pq=81e580d10006294c&rsv_t=aca82%2FkFyqJi4GCe8V9LnetUu1zQF2xkVlA3JNhdyri%2BBVm9VZPW19tSMto&rqlang=cn&rsv_enter=0' u = URL(url) print('url: %s' % u.url) print('protocol: %s' % u.protocol) print('host: %s' % u.host) print('path: %s' % u.path) print('args: %s' % u.args) |