分享62个ASP江湖论坛源码,总有一款适合您
62个ASP江湖论坛源码下载链接:https://pan.baidu.com/s/11S-6eACao8PnteViQHEB0g?pwd=h9na
提取码:h9na
Python采集代码下载链接:采集代码.zip - 蓝奏云
我的博客地址:亚丁号-知识付费平台 支付后可见 扫码付费可见
import os
import shutil
import time
from time import sleep
from docx import Document
from docx.shared import Inches
from framework.base.BaseFrame import BaseFrame
from sprider.business.DownLoad import DownLoad
from sprider.business.SeleniumTools import SeleniumTools
from sprider.business.SpriderTools import SpriderTools
from selenium import webdriver
from selenium.webdriver.common.by import By
from sprider.model.SpriderEntity import SpriderEntity
from sprider.access.SpriderAccess import SpriderAccess
sprider_name = "ASP江湖论坛源码"
class CNSourceCoder:
base_url = "http://www.downcode.com"
base_path = "D:\\Freedom\\Sprider\\CNSource"
sprider_count = 62
sprider_start_count = 488
first_folder_name = "ASP"
max_pager = 10 # 每页的数量 影响再次采集的起始位置.
word_image_count = 5 # word插入图片数量 同时也是明细采集图片和描述的数量
page_end_number = 0
word_content_list = []
haved_sprider_count = 0 # 已经采集的数量
sprider_detail_index = 0 # 明细方法采集的数量 累加
天幕源码站 2004 XP版
BBSXP V1.0 To V5.0数据库升级程序
GBMad BBS V1.03
宝贝工作室论坛 V2.0美化版
中国混音交流论坛
DL Forum V2.0 Beta
5237论坛程序 V4.2.1
风云江湖
ADBBS V1.1PB
雨丝论坛国际版VIP V5.0 正式简装版
雨丝论坛国际版VIP V5.0 正式加强版
都市论坛Dvbbs7.0.0sp2插件美化版
先锋社区 V2.0
苹果派论坛(雪人美化版)
『梦之青春』V1.0论坛无错版
E龙设计论坛(异域升级版)
『兰苑·寻迹』论坛美化版
6K论坛 V6.0 (SU版)
6KbbsSU V3.0 繁体中文版
6KbbsSU V3.0 简体中文版
中国秀一生索爱论坛
宝贝工作室论坛美化版
YESXP工作室论坛(CPB美化版) V1.0
BBSXP数据库升级程序(4.00-5.00)
def sprider(self,sprider_name):
"""
ASP留言日记源码 http://www.downcode.com/sort/j_1_2_1.shtml
:param sprider_name:
:return:
"""
if sprider_name == "ASP聊天室源码":
self.first_column_name = "sort"
self.second_column_name = "j_1_1"
elif sprider_name=="ASP留言日记源码":
self.first_column_name = "sort"
self.second_column_name = "j_1_2"
elif sprider_name == "ASP江湖论坛源码":
self.first_column_name = "sort"
self.second_column_name = "j_1_3"
elif sprider_name == "ASP新闻文章源码":
self.first_column_name = "sort"
self.second_column_name = "j_1_4"
BaseFrame().debug("开始采集" + self.first_folder_name + "...")
BaseFrame().right("本次采集参数:日志路径=" + str(BaseFrame().LOG_PATH) + "")
BaseFrame().right("本次采集参数:sprider_count=" + str(self.sprider_count) + "")
BaseFrame().right("本次采集参数:sprider_name=" + sprider_name + "")
sprider_url = self.base_url + "/{0}/{1}_1.shtml".format(self.first_column_name, self.second_column_name)# 根据栏目构建URL
BaseFrame().debug("本次采集参数:sprider_url=:" + sprider_url)
self.second_folder_name = str(self.sprider_count) + "个" + sprider_name # 二级目录也是wordTitle
self.merchant = int(self.sprider_start_count) // int(self.max_pager) + 1 # 起始页码用于效率采集
self.file_path = self.base_path + os.sep + self.first_folder_name + os.sep + self.second_folder_name
BaseFrame().right("本次采集参数:file_path=" + self.file_path + "")
# 浏览器的下载路径
self.down_path = self.base_path + os.sep + self.first_folder_name+ os.sep + self.second_folder_name+ "\\Temp\\"
BaseFrame().right("本次采集参数:down_path=" + self.down_path + "")
# First/PPT/88个动态PPT模板/动态PPT模板
self.save_path = self.base_path + os.sep + self.first_folder_name + os.sep + self.second_folder_name + os.sep + sprider_name
BaseFrame().right("本次采集参数:save_path=" + self.save_path + "")
if os.path.exists(self.down_path) is True:
shutil.rmtree(self.down_path)
if os.path.exists(self.down_path) is False:
os.makedirs(self.down_path)
if os.path.exists(self.save_path) is True:
shutil.rmtree(self.save_path)
if os.path.exists(self.save_path) is False:
os.makedirs(self.save_path)
chrome_options = webdriver.ChromeOptions()
diy_prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': '{0}'.format(self.down_path)}
# 添加路径到selenium配置中
chrome_options.add_experimental_option('prefs', diy_prefs)
chrome_options.add_argument('--headless') # 隐藏浏览器
# 实例化chrome浏览器时,关联忽略证书错误
driver = webdriver.Chrome(options=chrome_options)
driver.set_window_size(1280, 800) # 分辨率 1280*800
driver.get(sprider_url)
element_list = driver.find_elements(By.CLASS_NAME, "j_text_sort_a")
# element_list = element_ul.find_elements(By.TAG_NAME, "h2") #
page_end_number = 1
page_end_url = ""
a_elments = driver.find_elements(By.TAG_NAME, "a")
for a in a_elments:
page_end_title = a.get_attribute("title")
if page_end_title == "最后页":
page_end_url = a.get_attribute("href")
print(page_end_url)
break
if page_end_url is None or page_end_url == "":
page_end_number = 1
else:
page_end_number = (page_end_url.split(".shtml")[0].split("_")[3])
self.page_count = self.merchant
while self.page_count <= int(page_end_number): # 翻完停止
try:
if self.page_count == 1:
self.sprider_detail(driver,element_list, page_end_number)
pass
else:
if self.haved_sprider_count == self.sprider_count:
BaseFrame().debug("采集到达数量采集停止...")
BaseFrame().debug("开始写文章...")
SpriderTools.builder_word(self.second_folder_name,
self.word_content_list,
self.file_path,
self.word_image_count,
self.first_folder_name )
SpriderTools.copy_file(self.word_content_list,
self.save_path,
self.second_folder_name,
self.file_path)
SpriderTools.gen_passandtxt(self.second_folder_name, self.word_content_list, self.file_path)
BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
break
next_url = self.base_url + "/{0}/{1}_{2}.shtml".format(self.first_column_name,
self.second_column_name,
self.page_count)
driver.get(next_url)
element_list = driver.find_elements(By.CLASS_NAME, "j_text_sort_a")
self.sprider_detail(driver, element_list, page_end_number)
pass
self.page_count = self.page_count + 1 # 页码增加1
except Exception as e:
print("sprider()执行过程出现错误:" + str(e))
IBB论坛 V2.1
Dvbbs V7.0 Sp2 For E线江湖 V8.7 极限版
博爱论坛 V3.0
『兰苑·寻迹』论坛美化版音乐电台插件
台州虚拟城 V5.1 免费试用版
LeadBBS恒星家园美化版 V3.0
恋恋南昌VIP美化版5.1
SP2娱乐轩论坛L3.0全插件美化版
星艺动音动感论坛
动网6.0播放器带后台
PaintBlueBBS V1.2(SP9)简体中文版(涂鸦论坛)
冰点网络SF V1.25
博爱论坛 V2.91 完美版
中国家园SQL论坛(储存过程版)
缘分江湖2.0
娱乐轩论坛 L2.5
天庚娱乐社区全插件1.0版
紫怡家园论坛贴子显示补丁
仙游小驿BBS
恋恋南昌VIP美化版 V5.0
梦想家园论坛 V3.0 免费版
蓝色时光超级小论坛 V1.0 DEMO
子宜美化版论坛 V1.0
一旭论坛
星月论坛XYLTSF Forum V1.8
媒体论坛
恋恋南昌美化版BBSXP V4.2
风之谷论坛(美化版) V1.01
星空驿站论坛 V2.0 SP1(动网7.0美化版)
八恒江湖最新版
先锋社区 V1.0
Bbsxp V4.11 恋恋南昌全插件VIP美化版
上校论坛 PC Forum Ⅱ V2.1C 完整版
上校论坛 PC Forum Ⅱ V2.1C 无虚拟形象图片版
崭设计论坛 V1.0 测试版
信阳在线论坛DV7.0美化修改版
饼干部屋 V1.3beta(雪人论坛V1.6)
ATNET ASP Bbs 5.3 專業版
import os
import shutil
def void_folder(path):
# 访问path路径下的文件或文件夹
lst = os.listdir(path)
# 打印每一层的文件或文件夹
for name in lst:
# 拼接名称,得到绝对路径,判断该文件是否符合是文件夹
real_path = os.path.join(path, name)
# 如果是文件夹,则打空格表示,并且递归访问下一层
if os.path.isdir(real_path):
# print(name)
files = os.listdir(real_path)
if len(files) == 0:
print("void_folder():"+name)
shutil.rmtree(real_path)
endindex = len(real_path) - len(name)
real_path = real_path[0:endindex]
void_folder(real_path)
else:
void_folder(real_path)
# 如果不是文件夹,直接打印,不再递归访问下一层
else:
#print(name)
pass
def void_file(dirPath):
dirs = os.listdir(dirPath) # 查找该层文件夹下所有的文件及文件夹,返回列表
for file in dirs:
file_full_name = dirPath + '/' + file
file_ext = os.path.splitext(file_full_name)[-1]
if file_ext is None or file_ext=="":
continue
if "rar" == str(file_ext.split(".")[1]):
os.remove(file_full_name)
if "zip" == str(file_ext.split(".")[1]):
os.remove(file_full_name)
if "gz" == str(file_ext.split(".")[1]):
os.remove(file_full_name)
if "tgz" == str(file_ext.split(".")[1]):
os.remove(file_full_name)
最后送大家一首诗:
山高路远坑深,
大军纵横驰奔,
谁敢横刀立马?
惟有点赞加关注大军。