1,关于文章被爬
说起来挺桑心的,好不容易写的文章,被爬走。
用个搜索引擎搜索都不是在第一位,写的文章全给这些网站提供流量了。
这种网站还居多广告。
还是抱怨少点吧。csdn对于这些事情也是无所作为啊。
最起码的防盗链也不加上,图片直接用csdn的。
网易,qq在 上个世纪就加上防盗链了。
csdn也是土豪啊,这公益事业做的!!!真叫好。
举例:
之前写第一个rancher文章:
原文章:
http://blog.csdn.net/freewebsys/article/details/51154388
被抓取的文章:
http://www.bkjia.com/Linux/1124575.html
直接将我的顶部和底部的声明,和我的博主地址删除了。
我还故意没有放到最后一行,也被删除了。
这个有意思。估计是弄了一个正则的库,遇见连接直接给删除了。
这次来个NB的,我直接在图片里面加上我的博主地址。
看看他们咋处理。
2,python处理图片
首先我的电脑是mac,其他系统也是一样的。
用的最多的是qq截屏生成的图片。
监控qq截屏目录,使用watchdog。
项目地址:
https://github.com/gorakhargosh/watchdog
安装:
pip install watchdog
3,macos 下面安装PIL
mac安装之前必须安装freetype。需要引入中文字体,否则乱码。
brew install libpng
brew install freetype
#安装之后需要把freeType的include文件做个软连接。保证能访问到。
sudo ln -s /usr/local/Cellar/freetype/2.5.3_1/include/freetype2 /usr/include/freetype
官方网站:(python imaging library)
http://www.pythonware.com/products/pil/
由于没有windows的版本,直接使用源代码安装。最后更新的时间是2009年。
#解压缩
tar -zxvf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
python setup.py build
python setup.py install
安装完之后就可以使用了。
安装到了目录/Library/Python/2.7/site-packages/PIL 下面。
4,编写python代码
代码实现主要功能:
增加对qq截屏文件夹的监听,然后生成新的文件之后立刻对图像进行增加水印。
效果如下:
干的漂亮,但是有几个问题,字体只能是19号,再小了就乱了。
源代码如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
################
import sys
import time
import logging
#设置日志格式.
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
reload(sys)
charset = "utf-8"
sys.setdefaultencoding(charset)
import Image
import ImageDraw
import ImageFont
#增加水印.直接写入文件.
def watermask(qq_screencapture_file):
print(qq_screencapture_file)
#写入两行文件.
sign_text1 = u'版权声明:本文为博主原创,未经允许不得转载。'
sign_text2 = u'博主地址:http://blog.csdn.net/freewebsys'
#字体必须大于等于19才可以输出汉字,过小可能该库渲染不起来,具体原因不清楚。
font = ImageFont.truetype('simhei.ttf',19)
img = Image.open(qq_screencapture_file)
#获得图片长和宽,将文字写到最底下.
width,height = img.size
#img = Image.new("RGBA",(300,200),(0,0,0))
draw = ImageDraw.Draw(img)
#draw.text( (0,50), u'你好,世界!', font=font)
# draw.text( (0,50), unicode(txt,'UTF-8'))
draw.text((20,height-50),sign_text1,fill='#ff0000', font=font)
draw.text((20,height-30),sign_text2,fill='#ff0000', font=font)
del draw
#正好qq图片是png的.
img.save(qq_screencapture_file, "PNG")
print("finish.")
#增加监控Handler类.
class MyEventHandler(FileSystemEventHandler):
#其他还有别的,只保留创建函数.(其他还有on_moved,on_deleted,on_modified等.
def on_created(self, event):
what = 'directory' if event.is_directory else 'file'
#logging.info("Created %s: %s", what, event.src_path)
#对图像进行处理,增加水印.
watermask(event.src_path)
if __name__ == "__main__":
path = "your_qq_ScreenCapture_dir"
#增加 handler事件类.
event_handler = MyEventHandler()
#一些是官方写法.不做修改.
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
最后注意下字体文件,需要放到当前目录下面。
从网上搜索一个字体文件就行。我使用的是黑体的。
5,总结
自己的文章还是很辛苦的写的呢。
花不少时间的劳动成果不想被他人就这么窃取。
但是还想继续写博客,这个好习惯我也会继续坚持下去的。
增加水印的这个办法超级棒,并且自己设计水印。
还是程序员厉害。
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51800163 未经博主允许不得转载。
@ http://blog.csdn.net/freewebsys