推荐设备MORE

打卡微信小程序—成都小程序

打卡微信小程序—成都小程序

行业知识

企业建站的几个原则-基于python实现线程同步分页

日期:2021-04-20
我要分享
--------

企业建站的几个原则

-------

江西居道科技比较有限企业主要经营的业务包括企业网站建设,APP开发设计,小程序开发设计,互联网营销推广,SEO优化,网编人员免不了要帮顾客开展一些网站维护保养实际操作,可是,各行各业特点不一样,大家朋友每次帮顾客维护保养网站时,都需要获得很多的素材,照片特性的素材倒是好办,立即上百度搜索照片上去找,可是,文本內容就不太好弄了。

大家的互联网编写人员以往都是去一些顾客同行业网站上收集有关的素材,随后略加梳理,可是,这类方法需要耗费很多的人力,并且没甚么技能可言,纯碎是人力实际操作;有鉴于此,大家程序开发设计人员选用python写了一个多进程分页查询收集网站段落內容的脚本制作专用工具,依据设置好的主要参数全自动对特定网站开展收集,提取网站上的段落內容,并将內容储存到本机,现公布有关编码,便捷大伙儿应用,转载请注明出处!


#!/usr/bin/python
import json
import os
import requests
import threading
import re
import time
import sys
import colorama
colorama.init(autoreset=True)
#开启文档
with open( config.json , r ) as f:
 data = json.load(f)
 f.close()

thead_count = 0 #待完毕的过程数 start_ = toInt(data[ start ]) #分页查询起止值 end_ = toInt(data[ end ]) #分页查询完毕值 url_ = data[ url ] #通道详细地址 urlinclude = data[ urlinclude ] #URL务必包括的标识符 urlunclude = data[ urlunclude ] #URL不可以包括的标识符 textinclude = data[ textinclude ] #內容中务必包括的內容 textunclude = data[ textunclude ] #內容中不可以包括的标识符 textreplace = data[ textreplace ] #需要过滤的标识符 textminsize = toInt(data[ textminsize ]) #合理段落的至少标识符数 textmaxsize = toInt(data[ textmaxsize ]) #合理段落的最大标识符数 encoding_ = data[ encoding ] #网页页面编号 starttag = data[ starttag ] #內容提取刚开始标识符 endtag = data[ endtag ] #內容提取完毕标识符 sleepTime = toInt(data[ sleep ]) #每次恳求间距 jsonkey = data[ jsonkey ] #JSON文件格式数据信息回到时的字段 headers_ = data[ headers ] #request恳求主机头主要参数 todayStr = time.strftime( %Y%m%d ,time.localtime()) total = 0 if encoding_== : encoding_ =  utf-8   #系统日志储存 def doLog(vstr):  with open(todayStr +  .log , a ) as fo:  if vstr != :  fo.writelines(time.strftime( %Y-%m-%d %H:%M:%S ,time.localtime()) +  \t  + vstr +  \n )  else:  fo.writelines(time.strftime( \n ))    fo.close() def saveText(vstr): global total if vstr != : #doLog( 需要储存的內容长度 +str(len(vstr))) #分辨不容许包括的內容 if len(textunclude) 0: for tu_ in textunclude: if tu_!= : if vstr.find(tu_) !=-1: #doLog(vstr +  】中存在不容许的标识符:  + tu_) return  #解决更换內容 if len(textreplace) 0: for vi in textreplace: if vi!= : vstr = vstr.replace(vi, ) print( \033[0;32;40m\t 搜集的內容长度:  + str(len(vstr)) +  \t\033[0m  ) total = total +1 with open( 收集結果.txt , a ) as fo: fo.writelines(vstr+ \n ) fo.close() def getFromUrl(vurl): global thead_count,start_time if vurl != : print( 将要从  + vurl +  网页页面获得可用连接 ) #提取主网站地址 domain =  if vurl.find( :// ) !=-1: domain = vurl[0:vurl.find( / ,vurl.find( :// )+4)] else: domain = vurl[0:vurl.find( / )] res = requests.get(vurl, ,headers=headers_ if len(headers_) 0 else {},timeout=3) if jsonkey != : _json = res.json() if _json[jsonkey] != : htmlStr = _json[jsonkey] else: print( ================== ERROR =================== ) else: htmlStr = res.text #print(htmlStr) a_href =re.findall( a.*?href= (.*?) .*? ,htmlStr,re.I) #运用正则表达式,提取全部a连接 a_href = set(a_href) #过渡反复的连接 for i in a_href: urlFlag = 1 #对连接开展合理性分辨,先分辨不可以包括的标识符 if len(urlunclude) 0: for u1 in urlunclude: if i.find(u1) !=-1: urlFlag = 0 print( \033[0;31;40m\t  + i +  \t失效\033[0m  ) break #分辨务必包括的內容 if urlFlag 0 and len(urlinclude) 0: inFlag = 0 for u2 in urlinclude: if i.find(u2) !=-1: inFlag = 1 break if inFlag 1: urlFlag=0 #不存在特定內容,视作失效 if urlFlag: #URL合理 if i[0:1] == / : i = domain + i #相对性文件目录,补齐相对路径 #提取內容 if sleepTime 0: print( 延时  + str(sleepTime) +  秒后刚开始收集 ) time.sleep(sleepTime) doLog( 刚开始收集:  + i) res2 = requests.get(i, ,headers=headers_ if len(headers_) 0 else {},timeout=3) html_ = res2.text if html_ != : htmlFlag = 1 #分辨是不是包括特定內容 if len(textinclude) 0: if html_.find(textinclude) !=-1: htmlFlag = 1 else: htmlFlag = 0 if htmlFlag 1: print(i +  \t不存在特殊內容,视作失效! ) else: if starttag!=  or endtag!= : _startpos = 0 _endpos = len(html_) if starttag!= : _startpos = html_.find(starttag) if endtag!= : _endpos = html_.find(endtag,_startpos) if _startpos = _endpos: _endpos = len(html_) #依据标识,提取內容 html_ = html_[_startpos:_endpos] #过滤掉html编码,提取纯汉语 html_ = html_.replace( /p , /p \r\n ) #防止整段HTML编码都没换行 html_ = re.sub(r /?\w+[^ ]* , ,html_) #doLog(i +  :  + html_) #对內容开展切分 tmpArr = html_.split( \r\n ) for ti in tmpArr: ti2 = ti.strip().replace(   ,   ) if len(ti2) textminsize and len(ti2) textmaxsize: #doLog(i +  :  + ti) saveText(ti2) else: if len(ti2) textmaxsize: print(i +  的內容长度为:  + str(len(ti2))) #內容太长,尝试再度分段 arr2 = ti2.replace( \r , \n ).split( \n ) for tj in arr2: tj2 = tj.strip().replace(   ,   ) print( 当今段落长度为:  + str(len(tj2))) if len(tj2) textminsize and len(tj2) textmaxsize: saveText(tj2) #else: # if len(tj2) textmaxsize: # doLog(i +  --  + tj2) else: print( 段落不合乎设置要求  + str(len(ti2))) print(i) print(vurl +   收集进行,撤出进程\n ) if thead_count==1: print( 每日任务已进行,同用时: +str(formatFloat(time.time()-start_time)) +  s ) print( 总共:  + str(total)) #撤出全部程序 sys.exit() else: if thead_count 0: thead_count -= 1 else: if thead_count 0: thead_count -= 1 print( 程序取得成功起动 ) if start_ 1: start_ = 1 if end_ start_: end_=start_ thread_list = [] start_time = time.time() print( 江西居道科技比较有限企业为您出示技术性服务,,转载请注明出处 ) if url_.find( [pageindex] ) !=-1: for ui in range(start_,end_+1): _url_ = url_.replace( [pageindex] ,str(ui)) myThread = threading.Thread(target=getFromUrl,args=(_url_,)) thead_count += 1 thread_list.append(myThread); for tl in thread_list: tl.start() if sleepTime 0: print( 延时  + str(sleepTime) +  秒后再次 ) time.sleep(sleepTime) #doLog( 起动一个过程 else: , urlinclude :[ jsruixi/vip_doc ], urlunclude :[], textinclude : /h1 , textunclude :[ ___ , , :// ], textreplace :[ 南京 , 1、 , 2、 , 3、 , 4、 , 5、 , 6、 , 7、 , 8、 , 9、 , ①、 , ①. , ②、 , ②. , ③、 , ③. , ④、 , ④. , ⑤、 , ⑤. , ⑥、 , ⑥. , ⑦、 , ⑦. , ⑧、 , ⑧. , ⑨、 , ⑨. , ⑩、 , ⑩. , ⑴、 , ⑴. , ⑵、 , ⑵. , ⑶、 , ⑶. , ⑷、 , ⑷. , ⑸、 , ⑸. , ⑹、 , ⑹. , ⑺、 , ⑺. , ⑻、 , ⑻. , ⑼、 , ⑼. , ⑽、 , ⑽. , 一、 , 一. , 二、 , 二. , 三、 , 三. , 四、 , 四. , 五、 , 五. , 六、 , 六. , 七、 , 七. , 八、 , 八. , 九、 , 九. , 十、 , 十. , 1)、 , 1). , 2)、 , 2). , 3)、 , 3). , 4)、 , 4). , 5)、 , 5). , 6)、 , 6). , 7)、 , 7). , 8)、 , 8). , ① , ⑴ , 1) , ② , ⑵ , 2) , ③ , ⑶ , 3) , ④ , ⑷ , 4) , ⑤ , ⑸ , 5) , ⑥ , ⑹ , 6) , ⑦ , ⑺ , 7) , ⑧ , ⑻ , 8) , ⑨ , ⑼ , ⑩ , ⑽ , (1) , (2) , (3) , (4) , (5) , (6) , (7) , (8) , (9) , (10) ], textminsize :100, textmaxsize :300, encoding : utf-8 , starttag : /h1 , endtag : div >


有关脚本制作出示免费下载,点一下免费下载

运作实际效果以下图:


原創內容,转载请注明出处:企业网站建设,APP开发设计,小程序开发设计请找江西居道科技比较有限企业,> -南昌企业网站建设,南昌模版网站,南昌智能化建网站,南昌完全免费建网站,南昌互联网企业,南昌公司网站,精致公司网站模版-江西居道科技比较有限企业 ---------

企业建站的几个原则

------------