网站内容采集(主营业务包含网站建设,小程序开发,网络推广 )
优采云 发布时间: 2021-12-05 23:23网站内容采集(主营业务包含网站建设,小程序开发,网络推广
)
主营业务包括网站建设、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()
def toInt(num):
if num !='':
return int(num)
else:
return 0
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("