执行原理:

1)连接数据库,读取指定数量的文章,并按照标点符号,将文章拆分成句子(找出符合条件的句子,我这里设置的是超过12个字符的句子,抽取2条)

2)将上述句子分别通过百度搜索接口进行查询,查找搜索结果top10中完整包含该句子的数量,如果句子的重复度低于30%(1个句子是3条重复,2个句子就是6条重复),也就是低于6个句子重复,那就提示内容重复度较低,符合要求

备注1:在:本脚本同路径下放置cookie.txt,可以放入多个百度账号登录后的cookie,轮循使用,以防止爬取频次过快,而被禁止访问

备注2:可以考虑使用动态IP进行爬取,可以大大降低无法正常抓取的问题,我这里使用的是阿布云,1条IP隧道1元/小时,自己可以根据自己需求自行考虑是否使用

#coding:utf-8

import requests,re,time,sys,json,datetime

import multiprocessing

import pymysql as mdb

import re

from random import choice

current_date = time.strftime('%Y-%m-%d',time.localtime(time.time()))

cookie = [line.strip() for line in open('cookie.txt', encoding='utf-8')]

def search(req,html):

text = re.search(req,html)

if text:

data = text.group(1)

else:

data = 'no'

return data

def date(timeStamp):

timeArray = time.localtime(timeStamp)

otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)

return otherStyleTime

def getHTml(url):

host = search('^([^/]*?)/',re.sub(r'(https|http)://','',url))

headers = {

"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",

"Accept-Encoding":"gzip, deflate, sdch",

"Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6",

"Cache-Control":"no-cache",

"Connection":"keep-alive",

"Cookie":choice(cookie),

"Host":host,

"Pragma":"no-cache",

"Upgrade-Insecure-Requests":"1",

"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36",

}

# 代理服务器

proxyHost = "http-dyn.abuyun.com" # 使用的阿布云动态隧道

proxyPort = "9020"

# 代理隧道验证信息

proxyUser = "xxxxx"

proxyPass = "xxxxx"

proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {

"host" : proxyHost,

"port" : proxyPort,

"user" : proxyUser,

"pass" : proxyPass,

}

proxies = {

"http" : proxyMeta,

"https" : proxyMeta,

}

html = requests.get(url,headers=headers,timeout=30)

# html = requests.get(url,headers=headers,timeout=30,proxies=proxies)

code = html.encoding

status_code = html.status_code

# print(status_code)

# time.sleep(1) # 防止抓取过快而被限制

return html.content

def getContent(word):

pcurl = 'http://www.baidu.com/s?q=&tn=json&ct=2097152&si=&ie=utf-8&cl=3&wd=%s&rn=10' % word

print('start crawl %s' % word)

html = getHTml(pcurl)

a = 0

try:

html_dict = json.loads(html)

for tag in html_dict['feed']['entry']:

if 'title' in tag:

title = tag['title']

url = tag['url']

rank = tag['pn']

time = date(tag['time'])

abs = tag['abs']

abs = re.sub(r',|,|?|\?|!|!|。|:|:', '', abs, re.I|re.S) # 去除搜索结果文章对应的摘要里面的标点符号,防止一些伪原创文章断句

if word in abs:

a += 1

except json.decoder.JSONDecodeError:

print('>>>> 抓取页面错误')

a = a

getContent(word)

finally:

return a

con = mdb.connect('127.0.0.1','root','root','seo',charset='utf8')

cur = con.cursor()

with con:

cur.execute("select pid,duanluo from luke_caiji limit 30") # 限制调用文章的数量

numrows = int(cur.rowcount)

for i in range(numrows):

row = cur.fetchone()

aid = row[0]

content = row[1]

content_format = re.sub(']*?>','',content)

a = 0

list_sentence = re.split(r',|,|?|\?|!|!|。|:|:', content_format)

for z in [ x for x in list_sentence if len(x)>12 ][:2]: # 此处限制每篇查询几句

a += getContent(z)

if a <=6:

print("%s --> %s 【文章重复度较低,可考虑采用】\n" % (aid,a))

else:

print("%s --> %s\n" % (aid,a))

# words = open(wordfile).readlines()

# pool = multiprocessing.Pool(processes=10)

# for word in words:

# word = word.strip()

# pool.apply_async(getContent, (word,client ))

# pool.close()

# pool.join()

本文代码及思路参考的是闯哥的文章,《SEO文章原创度检测》,闯哥用的是python2,我这里改成python3,并就一些参数和异常处理做了优化

python自动生成文章原创_Python文章原创度检测脚本【亲测有效】相关推荐

  1. python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+

    打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...

  2. python自动生成鸡汤文_python爬虫+pyinstaller制作一个属于自己的心灵鸡汤

    效果图如下: 实现方法 用Python爬虫对现有的api进行请求,获取彩虹屁,然后用tkinter模块形成一个可视化的gui,最后用pyinstaller对该py文件打包,这就是最后的彩虹屁生成器. ...

  3. python制作相册_《自拍教程73》Python 自动生成相册文件夹

    这里将告诉您<自拍教程73>Python 自动生成相册文件夹,具体操作过程:案例故事: 接Python mediainfo批量重命名图片文件,测试图片是批量重命名好了, 但是将测试图片放于 ...

  4. 用Python自动生成NBA巨星生涯数据曲线

    1.序 之前写过一个用 python 自动生成球员职业生涯数据的程序(原文请关注本人公众号),大家的反响很好,我也感到很欣慰.有问我怎么做的,如何学 python 的,也有提建议说集成到 web 里面 ...

  5. Python自动生成代码 - 通过tkinter图形化操作生成代码框架

    Python自动生成代码 - 通过tkinter图形化操作生成代码框架 背景 脚本代码 Demo_CodeGenerator.py display.py FileHandler.py: 脚本运行结果: ...

  6. python自动生成word报告

    python自动生成word报告 运用zipfile解压docx并替换模版内容 本文章主要介绍根据所提供的word模版,运用python zipfile库将word解压为xml格式,并通过文字替换自动 ...

  7. python自动汇总表格_用Python自动生成Excel报表

    作者 / 来源:林骥(ID:linjiwx) 01 安装和导入模块 以 Python 中的 openpyxl 模块为例,它能够读取和修改 Excel 文件,如果你还没有安装,可以通过以下命令进行安装: ...

  8. python ppt自动生成_实战 | Python自动生成PPT调研报告

    原标题:实战 | Python自动生成PPT调研报告 原文: 全文约 3821 字,读完可能需要 5 分钟. 文/JSong @2017.02.28 在数据分析里面有一句话是说,80%的时间要用于数据 ...

  9. 用Python自动生成Excel报表

    在日常工作中,可能会有一些重复无聊的任务,比如说,从 Excel 或数据库中收集一些数据,设置相应的数据格式并做成报表. 类似这种重复无聊的任务,我们完全可以交给 Python 去自动完成,只要第一次 ...

  10. 用Python自动生成数据日报!

    今天聊聊怎么用Python自动生成数据日报! 其实我觉得蛮简单,核心就是你组装好日报的内容模板,然后将变化的量交给python去填充,需要用到的基本就是python处理excel.word和ppt等相 ...

最新文章

  1. 数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(上)
  2. docker portainer_Docker入门详解(十一) 图形Portainer
  3. 【TPAMI2020】目标检测中的不平衡问题:综述论文,34页pdf
  4. 二叉排序树的实现——java
  5. .net运行项目的几种形式
  6. Spark Streaming 实战案例(五) Spark Streaming与Kafka
  7. 龙贝格数值分析作业c语言,数值分析龙贝格实验报告.doc
  8. Cookie的设置获取和删除
  9. 中文名称:案例编程MOOK系列
  10. centos7 mysql8 主从_CentOS7开启MySQL8主从备份、每日定时全量备份(推荐)
  11. Python3 高级编程
  12. 华为日历怎么显示一月_华为10手机日历图标在哪 华为日历怎么显示
  13. Matlab TreeBagger随机森林回归实例
  14. 安卓系统怎么查找手机定位服务器,安卓手机丢了怎么查定位找手机
  15. dice系数 交叉熵_ACL2020 | 香侬科技提出用Dice Loss缓解数据集数据不平衡问题
  16. 减少杠杆炒股风险的5种方法
  17. C++ 按行读取数据文件,每行以tab分隔
  18. 简约响应式导航主题VIK WordPress模板
  19. mysql导出权限授权_本文实例讲述了mysql数据库创建账号、授权、数据导出、导入操作。分享给大家供大家参考,具体如下:1、账号创建及授权grant all privileg...
  20. Mac电脑上最好的3个azw3阅读器

热门文章

  1. qt初体验(通信原理:消息码--AMI码--HDB3码低配可视化)
  2. ROS学习(13)自定义机器人的ROS导航
  3. 计算机科学与技术专业知识好学吗,计算机科学与技术好学吗
  4. 原子结构示意图全部_原子结构示意图和元素及元素周期表
  5. 小飞侠淘试用免费领取系统-永久免费的试用领取网站开源程序!
  6. 全网最详细的openstack安装教程
  7. 硬盘安装Win7教程!无光驱无U盘照样装Win7
  8. 弹力球C语言课程设计,弹力球游戏c语言代码
  9. 电视网络机顶盒破解记录
  10. 如何从硬盘安装Linux