代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
模仿主站模板 首页 内页
作者:
cqwck
/ 发布于
2015/5/19
/
717
#!/usr/local/bin/python #-*- coding: UTF-8 -*- #模仿主站模板 #QQ29295842 ################################################## import threading import httplib import re #import php_data #import g import sys import base64 #import eval #import list import httplib,StringIO,gzip,urllib,re import binascii import chardet import ConfigParser #读取INI配置信息 import random #打乱数组排序 import os #import sc_html #生成HTML import urllib2 import time import Queue #import sitemap_xml #生成站点地图 #import shell_links #SHELLSEO import list import thread sys.path.append('..') reload(sys) sys.setdefaultencoding("utf-8") class www_mb(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.url="" def www_index(self,url): self.url=url s1,s2=self.url_http_200(url) if s1==True: print "OK" utf_gbk, data = self.utf_8_G(s2) #解码 if data == "no": print u"读取或转换失败" return 0 print "1111111" data=self.open_file_null(data) #self.th_re(data) print "2222" self.TXT_file_add("index.html",u"%s"%(data)) else: print "NO" def www_index2(self,url): LS = list.Clist() #初始化类 LS.list_del() #清空list列表 self.url=url s1,data=self.url_http_200(url) if s1==True: print "OK" p = re.compile( r'<a.+?href=.+?>.+?</a>' ) pname = re.compile( r'(?<=>).*?(?=</a>)' ) phref = re.compile( r'(?<=href\=\").*?(?=\")') sarr = p.findall(data)#找出一条一条的<a></a>标签 #这添加到数组在过滤重复值减少mysql压力 i=0 for every in sarr: if i>=3000: break else: i+=1 sname = pname.findall( every ) if sname: #sname = sname[0] shref = phref.findall( every ) if shref: if (self.url in str(shref[0])): if (len(shref[0])-len(url))>=2: LS.liet_add(str(shref[0])) #站内链接 全URL #print "1111",str(shref[0]) else: if not("http://" in str(shref[0]) or "https://" in str(shref[0])): if len(shref[0])>=2: LS.liet_add(url+"/"+str(shref[0])) #指向目录 #print "2222",str(shref[0]) LS.liet_lsqc() #数组列表去重复 random.shuffle(LS.list_2) #打算数组原有排序方式 data2="" for i in range(len(LS.list_2)): print LS.list_2[i] s1,data=self.url_http_200(LS.list_2[i]) if s1==True: print "OK" data2=data break #跳出 整个循环 utf_gbk, data = self.utf_8_G(data2) #解码 if data == u"no": print u"读取或转换失败" return 0 data=self.open_file_null(data) self.TXT_file_add("index2.html",u"%s"%(data)) def th_re(self,data): try: #.+? try: #{time} 当前时间标签 (固定) p = re.compile( r'<title>[\s\S]*</title>') data= p.sub('<title>{time}</title>', data) #<title>【德尔顿官网】,热水器,电热水器,磁能热水器,安全健康热水器</title> except : pass try: #{time} 当前时间标签 (固定) p = re.compile( r'<a title="[\s\S]*" href="/">') data= p.sub('<a title="{time}" href="/">', data) #<a title="热水器十大品牌 电热水器哪个牌子好 磁能热水器-德尔顿" href="/"> except : pass try: #{time} 当前时间标签 (固定) p = re.compile( r'<strong>[\s\S]*</strong>') data= p.sub('<strong>{time}</strong>', data) #<strong>磁能热水器行业德尔顿...</strong> except : pass try: #{tmkeyword2} 整个网站模板随机抽取1个关键字 p = re.compile( r'>[\s\S]*</span>') data= p.sub('>{tmkeyword2}</span>', data) #>劳女士</span> except : pass try: #{tmkeyword2} 整个网站模板随机抽取1个关键字 p = re.compile( r'<p[\s\S]*>[\s\S]*') data= p.sub('{tmkeyword2}', data) #>看看离您最近的体验店在哪 except : pass try: #{tmkeyword} 主关键词标签 (固定) p = re.compile( r'<meta content="[\s\S]*" name="keywords">') data= p.sub('<meta content="{tmkeyword}" name="keywords">', data) #<meta content="热水器,电热水器,即热式电热水器,磁能热水器" name="keywords"> except : pass try: #{tmkeyword} 主关键词标签 (固定) p = re.compile( r'<meta name=".*?" content="[\s\S]*" />') data= p.sub('<meta name="keywords" content="{tmkeyword}" />', data) except : pass try: #{tmkeyword} 主关键词标签 (固定) #{tmkeyword2} 整个网站模板随机抽取1个关键字 p = re.compile( r'<meta name=".*?" content="[\s\S]*">') data= p.sub('<meta name="description" content="{tmkeyword}{tmkeyword2}">', data) #<meta name="description" content="德尔顿中国健康热水器,不需防电墙、不需接地线,不生水垢,电磁热水器,磁能热水器,安全热水器,家装群体首选健康速磁生活电热水器品牌,招商代理电话:400-888-1682。"> except : pass try: #{link} 随机链接标签(内链) (随机) p = re.compile( r'<A.*?href="[\s\S]*</A>') sarr = p.findall(data) if len(sarr)>=1: phref = re.compile( r'(?<=href\=\").*?(?=\")') sarr = phref.findall(data) if ("http://" in str(sarr[0]) or "https://" in str(sarr[0])): if (url in str(shref[0])): data= p.sub('{link}', data) #替换成内链 else: data= p.sub('{ylinks}', data) #替换成外链 else: if (".asp" in str(sarr[0]) or ".aspx" in str(sarr[0]) or ".php" in str(sarr[0]) or ".htm" in str(sarr[0]) or ".html" in str(sarr[0])): data= p.sub('{link}', data) #替换成内链 else: data= p.sub('{newslist}', data) #目录页目录链接 (随机) #<A href="/guanyu/shipin/">企业视频</A> except : pass try: #{link} 随机链接标签(内链) (随机) p = re.compile( r'<a.*?href="[\s\S]*</a>') sarr = p.findall(data) if len(sarr)>=1: phref = re.compile( r'(?<=href\=\").*?(?=\")') sarr = phref.findall(data) if ("http://" in str(sarr[0]) or "https://" in str(sarr[0])): if (url in str(shref[0])): data= p.sub('{link}', data) #替换成内链 else: data= p.sub('{ylinks}', data) #替换成外链 else: if (".asp" in str(sarr[0]) or ".aspx" in str(sarr[0]) or ".php" in str(sarr[0]) or ".htm" in str(sarr[0]) or ".html" in str(sarr[0])): data= p.sub('{link}', data) #替换成内链 else: data= p.sub('{newslist}', data) #目录页目录链接 (随机) except : pass try: #{link} 随机链接标签(内链) (随机) p = re.compile( r'<a.*?href="[\s\S]*</A>') sarr = p.findall(data) if len(sarr)>=1: phref = re.compile( r'(?<=href\=\").*?(?=\")') sarr = phref.findall(data) if ("http://" in str(sarr[0]) or "https://" in str(sarr[0])): if (url in str(shref[0])): data= p.sub('{link}', data) #替换成内链 else: data= p.sub('{ylinks}', data) #替换成外链 else: if (".asp" in str(sarr[0]) or ".aspx" in str(sarr[0]) or ".php" in str(sarr[0]) or ".htm" in str(sarr[0]) or ".html" in str(sarr[0])): data= p.sub('{link}', data) #替换成内链 else: data= p.sub('{newslist}', data) #目录页目录链接 (随机) except : pass try: #正文 p = re.compile( r'>*.+?[\s\S]*') sarr = p.findall(data) if len(sarr)>=1: #print u"%s"%(sarr) if len(sarr[0])>=150: data= p.sub('>{skeyword}{content}{content}。{skeyword}{content}{content}。{skeyword}{content}{content}。{skeyword}{content}{content}。', data) #print sarr[0],"=====",data if len(sarr[0])>=100: data= p.sub('>{skeyword}{content}{content}。{skeyword}{content}{content}。', data) if len(sarr[0])>=50: data= p.sub('>{skeyword}{content}{content}。', data) except : pass return data except Exception,e: return data # sarr = p.findall(data) # for line in res: # print line # print len(sarr) # res = p.split(data) # for line in res: # print line def open_file_null(self,file_data): #清除空行 data="" try: p = re.compile( r'.+?\n') sarr = p.findall(file_data) for every in sarr: if ("//" in str(every) or "!" in str(every)): data+=str(every) else: #print self.th_re(str(every)) data+=self.th_re(str(every)) #if every.split(): #data+=every # if len(every)>1: # data+=every #data+=every.lstrip().rstrip().strip().rstrip('\n') return data except Exception,e: print u"zzzzzzzzzzzzz",e return data def TXT_file_add(self,file_nem,data): #写入文本 try: #file_nem=time.strftime('%Y.%m.%d') #file_nem+".txt" file_object = open(file_nem,'w') #file_object.write(list_passwed[E]) file_object.writelines(data) #file_object.writelines("\n") file_object.close() except Exception,e: print u"写入TXT失败",file_nem,data,e return 0 def utf_8_G(self,data): #解码 try: try: return "gbk",data.decode('gbk') except Exception,e: #print e pass try: return "utf-8",data.decode('utf-8') except Exception,e: #print e pass try: return "gb2312",data.decode('gb2312') except Exception,e: #print e pass except Exception,e: print "utf_8_G",e return "utf_8_G","no" pass def url_http_200(self,url): try: req = urllib2.Request(url) req.add_header('User-Agent',"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)") s = urllib2.urlopen(req,timeout=10) # 超时10秒 #s = urllib2.urlopen(r"http://www.163.com") int_url_read = s.read() if len(int_url_read)>=5000: return True,int_url_read else: return False,"" except BaseException, e: #print "xxxxxxxxxxxx",(str(e)) return False,"" if __name__=='__main__': m=www_mb() #http://www.deerdun.com m.www_index("http://www.deerdun.com") #http://www.ybfhcl.com m.www_index2("http://www.deerdun.com") # p = re.compile('(one|two|three)') # print p.sub('num', 'one word two words three words apple', 2)
试试其它关键字
主站模板
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
cqwck
贡献的其它代码
(
2
)
.
模仿主站模板 首页 内页
.
实体类和JSON对象之间相互转化
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3