自動外鏈工具 在線排版工具 搜索引擎提交入口 wordpress主題推薦 批量打開網址工具 【老域名購買】 思享SEO導航 【網站合作】

如何檢測SEO文章原創度

427

過程:

1)先把一篇文章,按逗號分隔成一個一個短語

2)然后計算每個短語的字數

3)前兩個>10個字的短語,我們拿出來在百度搜索下,計算百度搜索結果中,完整出現該短語的次數。

 

若一個文章被其他網站大量轉載,那么隨便提取該文章中一個短語,都能在百度搜索出完全重復的內容:

如果我們連續搜索兩個短語,在百度搜索中,完全重復的結果很少,則可以一定程度代表該內容被其他站點大量轉載的概率比較小,原創度較高

原創

以上3個步驟,編寫一個腳本來執行:

左列是文章ID,右列是兩個短語,在百度搜索結果中完整出現的次數。次數越大,重復度越高,具體數值達到多少,自己定義。比如本渣一般將>=30%定位重復度比較高的,即搜索2個短語,20個搜索結果中,完整出現該短語的結果有>=6個

  1. #coding:utf-8  
  2.   
  3. import requests,re,time,sys,json,datetime  
  4. import multiprocessing  
  5. import MySQLdb as mdb  
  6.   
  7. reload(sys)  
  8. sys.setdefaultencoding('utf-8')  
  9.   
  10. current_date = time.strftime('%Y-%m-%d',time.localtime(time.time()))  
  11.   
  12. def search(req,html):  
  13.     text = re.search(req,html)  
  14.     if text:  
  15.         data = text.group(1)  
  16.     else:  
  17.         data = 'no'  
  18.     return data  
  19.   
  20. def date(timeStamp):  
  21.     timeArray = time.localtime(timeStamp)  
  22.     otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)  
  23.     return otherStyleTime  
  24.       
  25. def getHTml(url):  
  26.   
  27.     host = search('^([^/]*?)/',re.sub(r'(https|http)://','',url))  
  28.   
  29.     headers = {  
  30.         "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",  
  31.         "Accept-Encoding":"gzip, deflate, sdch",  
  32.         "Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6",  
  33.         "Cache-Control":"no-cache",  
  34.         "Connection":"keep-alive",  
  35.         #"Cookie":"",  
  36.         "Host":host,  
  37.         "Pragma":"no-cache",  
  38.         "Upgrade-Insecure-Requests":"1",  
  39.         "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",  
  40.     }  
  41.   
  42.   # 代理服務器  
  43.     proxyHost = "proxy.abuyun.com"  
  44.     proxyPort = "9010"  
  45.   
  46.     # 代理隧道驗證信息  
  47.     proxyUser = "XXXX"  
  48.     proxyPass = "XXXX"  
  49.   
  50.     proxyMeta = "http://%(user)s:%(pass)[email protected]%(host)s:%(port)s" % {  
  51.       "host" : proxyHost,  
  52.       "port" : proxyPort,  
  53.       "user" : proxyUser,  
  54.       "pass" : proxyPass,  
  55.     }  
  56.   
  57.     proxies = {  
  58.         "http"  : proxyMeta,  
  59.         "https" : proxyMeta,  
  60.     }  
  61.   
  62.     html = requests.get(url,headers=headers,timeout=30)  
  63.     # html = requests.get(url,headers=headers,timeout=30,proxies=proxies)  
  64.     code = html.encoding  
  65.     return html.content  
  66.   
  67.   
  68. def getContent(word):  
  69.   
  70.     pcurl = 'http://www.baidu.com/s?q=&tn=json&ct=2097152&si=&ie=utf-8&cl=3&wd=%s&rn=10' % word  
  71.     # print '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ start crawl %s @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@' % pcurl  
  72.     html = getHTml(pcurl)  
  73.   
  74.     a = 0  
  75.     html_dict = json.loads(html)  
  76.     for tag in html_dict['feed']['entry']:  
  77.         if tag.has_key('title'):  
  78.             title = tag['title']  
  79.             url = tag['url']  
  80.             rank = tag['pn']  
  81.             time = date(tag['time'])  
  82.             abs = tag['abs']  
  83.               
  84.             if word in abs:  
  85.                 a += 1  
  86.     return a  
  87.   
  88.   
  89. con = mdb.connect('127.0.0.1','root','','wddis',charset='utf8',unix_socket='/tmp/mysql.sock')  
  90. cur = con.cursor()  
  91. with con:  
  92.     cur.execute("select aid,content from pre_portal_article_content limit 10")  
  93.     numrows = int(cur.rowcount)  
  94.     for i in range(numrows):  
  95.         row = cur.fetchone()  
  96.   
  97.         aid = row[0]  
  98.         content = row[1]  
  99.         content_format = re.sub('<[^>]*?>','',content)  
  100.           
  101.         a = 0  
  102.         for z in [ x for x in content_format.split(',') if len(x)>10 ][:2]:  
  103.             a += getContent(z)  
  104.         print "%s --> %s" % (aid,a)  
  105.           
  106.   
  107. # words = open(wordfile).readlines()  
  108. # pool = multiprocessing.Pool(processes=10)  
  109. for word in words:  
  110.     # word = word.strip()  
  111.     # pool.apply_async(getContent, (word,client ))  
  112. # pool.close()  
  113. # pool.join()  
來源:本文由思享SEO博客原創撰寫,歡迎分享本文,轉載請保留出處和鏈接!
seo培訓評論廣告

搶沙發

昵稱*

郵箱*

網址

七乐彩选号技巧