Python 实践心得 —— 中英混杂的字符串对齐输出
第一次写技术博客,Python刚刚开始学习写的不好请多指教。
据说程序猿都有点强迫症
听说Python的爬虫很厉害,于是学习着,第一次实践去爬了个起点网的网页下来。
代码如下,小白写的很渣。。。正则什么的真的好难记啊
# -*- coding:utf-8 -*-
# ======================= 库导入 ============================
import urllib
import re
# ======================= 网络参数 ===========================
# 查询网址
url = "http://a.qidian.com"
# 正则字段
target = r'target="_blank" data-eid="qd_B58" data-bid=".*?">(.*?)</a></h4>.*?' \
r'<p class="update"><span >(.*?)</span>.*?' \
r'target="_blank" data-eid="qd_B60">(.*?)</a>'
# ======================== 主程序 ============================
resp = urllib.urlopen(url).read() # http响应
print resp
assert isinstance(resp, basestring) # 确定是否有正确的回应
reg = re.compile(target, re.S) # 编译正则表达式
names = re.findall(reg, resp) # re模块查找
print '一共有',len(names), '个结果\n'
for i in names: # 遍历输出
print
for j in range(0, len(i)):
sys.stdout.write(i[j])
然后试着用正则表达式抓取了书名、字数、分类下来,输出如下:
结果,恩,好像挤一起不是很好看
嗯,加空格或者制表符试试
加上空格试试看。根据设定的字符长度格式,检测需要输出的字符串长度,找到两者的差值,用空格补上。
这里可以用format或者ljust(靠左对齐)、rjust(靠右对齐)调教
下面的代码能让如下的字符串向左对齐,长度限定30,不够的在右侧填充‘-’(不填默认参数是空格)
str = 'This is a string.'
str.ljust(30,'-')
# 输出:
# This is a string.
主程序改成了:
# ======================
版权声明:本文为JayRoxis原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。