分享116个PHP源码PHP源码,总有一款适合你

简介: 分享116个PHP源码PHP源码,总有一款适合你

文件下载地址:分享116个PHP源码PHP源码,总有一款适合你

无忧淘宝客系统(集成jssdk)

亿百天教室预约系统 EbaitianCRS20130308

24小时返利系统

整形美容医院信息管理系统

尘烟五笔字根编码查询系统

易学短网址系统

Cowtacular 库存管理系统

一流购物分享系统带数据(淘金点版)

汉潮B2B2C多用户商城系统

大湿手机直播系统

飞蛙B2C微分销商城系统 FeiWa WeiShop

kldns 快乐二级域名分发系统 2.1.1

PrestaShop 网上购物系统

贴心猫(IntimateCat) 通用网站系统 V3.9

LOGA 日志系统升级程序

文具企业网站系统

YAWIK 工作和求职管理系统

展览服务公司网站系统

RackTables 数据中心资产管理系统

标识公司网站系统

广告设计公司网站系统

盾灵批量友情链接管理系统

电动车制造企业网站系统

门窗工程部网站系统

商务宾馆酒店网站系统

食品购物商场网站系统

Co.MZ 企业系统

预订易地方酒店预订网站管理系统

ECTouch移动商城系统

微信集分享系统

微信网上订餐系统多用户版

DzzOffice网盘协作系统

TinyShop电子商务系统支付插件

群建站通用企业网站建设系统免费版

MYMPS蚂蚁分类信息系统

淘宝内部优惠券广告展示系统

阿旺wifi智能系统Free

优客365网站分类导航系统

PhotoFun-图趣超轻图片网站系统

HDWiki(互动百科)

响应式淘宝客系统

树洞外链

信呼协同办公系统

DM企业建站系统

飞蛙B2C微分销商城系统

恒友网络威客+商城系统(WK+shop)

贝云校园网站管理系统

silverstripe 内容管理系统

云EC电商系统

Carbon Forum 论坛系统

墨子博客系统

CoverPrise品牌官网系统(原NiuKou建站系统)

墨子题库系统

ShopBuilder网店系统

silverstripe Web内容管理系统

Jaws框架和内容管理系统

PHlyMail 邮件系统

xSite企业自助建站系统(本地安装版)

淘宝自动发货提货系统

ezContents 网站内容管理系统

盾灵新闻发布系统

WebsiteBaker 内容管理系统

pDownload 下载界面

glFusion内容管理系统

Zeroboard 建站系统

口福科技网上订餐系统

AK博客网站 个人博客网站系统

大上海淘宝购物系统

扎鸟搜索引擎蜘蛛爬行统计系统

WBlog博客管理系统

Kuwebs企业网站管理系统

Alog Ben 博客日志系统 UTF8

体育用品商城系统

ITool网站综合查询系统

TinyBlog 个人博客系统

网上在线挂号预约管理系统

67企业网站管理系统

安乐业房产系统

ET_deliver发货单查询系统

易得网站数据采集系统

阿西多用户日志系统

Mihalism多用户图片共享系统

ITool快递查询系统免费版

化工产品仓储管理系统

齐博视频系统

优拓免费wap建站系统 V1.5

齐博考试系统

3839小游戏

b2b系统Destoonb2b

网客库存管理系统|在线excel编辑|在线office

手机网址站系统WML版

爱淘宝淘宝客推广系统

ETsale简单产品销售管理系统

256啦网址导航系统完整114啦

claroline 在线学习和课程管理系统 多国语言含中文

康盛品牌空间网上展示系统

康盛品牌空间网上展示系统

Kuwebs 酷纬企业网站管理系统

moa image gallery 轻量级易于使用的个人画廊系统

MygosuClan  游戏内容管理系统 1.04

jCore 网站内容管理系统 0.9

Tine Web的群件系统 2.0 RC2

Demila数字内容交易系统

随风知道采集系统(联盟计划)

星光贴吧系统(原香菇贴吧系统)

友博CRM客户关系管理系统

发货统计微型ERP系统

嘉缘人才网站系统

暗月挂Q系统

公司内部销售管理系统

厦门公交查询系统

客客出品专业威客系统KPPW

领域医院网络信息管理系统

MySQL5.5 中文版

飞舞小说系统

莽荒纪积分签到系统

才子信息学生综合管理系统


 

import os
import shutil
import time
from time import sleep
import requests
from bs4 import BeautifulSoup
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
class HuaJunCode:
    page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"
    base_url = "http://soft.onlinedown.net/"  # 采集的网址
    save_path = "D:\\Sprider\\HuaJunCode\\"
    sprider_count = 118  # 采集数量
    sprider_start_count=140 # 从第几个序号开始 直接改数量即可 会做除法操作 正在采集第33页的第23个资源 debug
    max_pager=25 #每页的数量
    haved_sprider_count =0  # 已经采集的数量
    word_content_list = []
    folder_name = ""
    page_end_number=0
    def __init__(self):
        pass
    def sprider(self,url_index=177):
        """
        采集 http://soft.onlinedown.net/sort/177/
        :return:
        """
        if url_index==177:
            self.folder_name="PHP源码"
        elif url_index==178:
            self.folder_name = "博客系统"
        elif url_index == 179:
            self.folder_name = "整站系统"
        elif url_index == 180:
            self.folder_name = "商务商城"
        elif url_index == 176:
            self.folder_name = "ASP源码"
        merchant=int(self.sprider_start_count) //int(self.max_pager)+1
        self.save_path = self.save_path + os.sep + self.folder_name
        BaseFrame().debug("开始采集HuaJunCodePHP...")
        sprider_url=(self.base_url + "/sort/{0}/1/".format(url_index))
        down_path="D:\\Sprider\\HuaJunCode\\"+self.folder_name+"\\Temp\\"
        if os.path.exists(down_path) is True:
            shutil.rmtree(down_path)
        if os.path.exists(down_path) is False:
            os.makedirs(down_path)
        chrome_options = webdriver.ChromeOptions()
        diy_prefs ={'profile.default_content_settings.popups': 0,
                    'download.default_directory':'{0}'.format(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方法将定位在给定的URL的网页,get接受url可以是任何网址,此处以百度为例
        driver.get(sprider_url)
        # content = driver.page_source
        # print(content)
        pager_content=driver.find_element(By.CLASS_NAME, "page").find_element(By.TAG_NAME, 'span').text
        page_end_number = pager_content.replace("共", "").replace("页", "")
        #print(page_end_number)
        ul_elem =driver.find_element(By.ID, "soft_list") #列表页面 核心内容
        li_list=ul_elem.find_elements(By.TAG_NAME, 'li')
        self.page_count=merchant
        while self.page_count <= int(page_end_number):  # 翻完停止
            try:
                if self.page_count == 1:
                    self.sprider_detail(driver,li_list,self.page_count,page_end_number,down_path)
                    pass
                else:
                    if self.haved_sprider_count == self.sprider_count:
                        BaseFrame().debug("采集到达数量采集停止...")
                        BaseFrame().debug("开始写文章...")
                        self.builder_word(self.folder_name, self.save_path, self.word_content_list)
                        BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
                        break
                    #(self.base_url + "/sort/{0}/{1}/".format(url_index, self.page_count))
                    #http://soft.onlinedown.net/sort/177/2/
                    next_url = (self.base_url + "/sort/{0}/{1}/".format(url_index, self.page_count))
                    driver.get(next_url)
                    ul_elem = driver.find_element(By.ID, "soft_list")  # 列表页面 核心内容
                    li_list = ul_elem.find_elements(By.TAG_NAME, 'li')
                    self.sprider_detail( driver, li_list, self.page_count, page_end_number, down_path)
                    pass
                #print(self.page_count)
                self.page_count = self.page_count + 1  # 页码增加1
            except Exception as e:
                print("sprider()执行过程出现错误:" + str(e))
                sleep(1000000)
                #driver.quit()
    def sprider_detail(self, driver,element_list,page_count,max_page,down_path):
        """
        采集明细页面
        :param driver:
        :param element_list:
        :param page_count:
        :param max_page:
        :param down_path:
        :return:
        """
        index = 0
        element_array=[]
        element_length=len(element_list)
        for element in element_list:
            next_url = element.find_element(By.TAG_NAME, 'a').get_attribute("href")
            coder_title = element.find_element(By.TAG_NAME, 'img').get_attribute("title")
            e=coder_title+"$"+ next_url
            element_array.append(e)
            pass
        #print(element_array)
        # print(element_list[index].find_element(By.TAG_NAME, 'a').get_attribute("href"))
        #self.save_path = self.save_path + os.sep + self.folder_name
        # page_count * element_length
        #self.haved_sprider_count=self.sprider_start_count
        # sprider_start_count
        self.sprider_start_index = int(self.sprider_start_count) % int(self.max_pager)
        index=self.sprider_start_index
        while index < element_length:
            # ul_elem = driver.find_element(By.ID, "soft_list")  # 列表页面 核心内容
            # element_list = ul_elem.find_elements(By.TAG_NAME, 'li')
            if os.path.exists(down_path) is False:
                os.makedirs(down_path)
            if self.haved_sprider_count == self.sprider_count:
                BaseFrame().debug("采集到达数量采集停止...")
                break
            #element = element_list[index]
            element=element_array[index]
            time.sleep(1)
            index = index + 1
            sprider_info="正在采集第"+str(page_count)+"页的第"+str(index)+"个资源"
            BaseFrame().debug(sprider_info)
            next_url=element.split("$")[1]
            coder_title=element.split("$")[0]
            # next_url = element.find_element(By.TAG_NAME, 'a').get_attribute("href")
            # coder_title =element.find_element(By.TAG_NAME, 'img').get_attribute("title")
            driver.get(next_url) # 请求明细页面
            try:
                codeEntity = SpriderEntity()  # 依据图片执行,下载过的图片不再下载
                codeEntity.sprider_base_url = self.base_url
                codeEntity.create_datetime = SpriderTools.get_current_datetime()
                codeEntity.sprider_url = next_url
                codeEntity.sprider_pic_title = coder_title
                codeEntity.sprider_pic_index = str(index)
                codeEntity.sprider_pager_index = page_count
                codeEntity.sprider_type = "code"
                if SpriderAccess().query_sprider_entity_by_urlandindex(next_url, str(index)) is None:
                    SpriderAccess().save_sprider(codeEntity)
                else:
                    BaseFrame().debug(coder_title+next_url + "数据采集过因此跳过")
                    continue
                if SeleniumTools.judeg_element_isexist(driver, "CLASS_NAME", "bendown") == 3:
                    driver.back()
                    BaseFrame().debug(coder_title+"不存在源码是soft因此跳过哦....")
                    continue
                print("准备点击下载按钮...")
                driver.find_element(By.CLASS_NAME, "bendown").click()
                result,message=SpriderTools.judge_file_exist(True,90,1,down_path,"zip|rar")
                if result is True:
                    img_element =""
                    if SeleniumTools.judeg_element_isexist(driver,"TAG_NAME","center")==3:
                        if SeleniumTools.judeg_element_isexist(driver, "CLASS_NAME", "sortPic") == 3:
                            pass
                        else:
                            img_element = driver.find_element(By.CLASS_NAME, "sortPic")
                            img_element=img_element.find_element(By.TAG_NAME, "img")
                            image_src = img_element.get_attribute("src")
                            DownLoad(self.save_path).down_cover_image__(image_src, coder_title)  # 资源的 封面
                    else:
                        img_element = driver.find_element(By.TAG_NAME, "center").find_element(By.TAG_NAME, "img")
                        image_src = img_element.get_attribute("src")
                        DownLoad(self.save_path).down_cover_image__(image_src, coder_title)  # 资源的 封面
                    sprider_content = [coder_title, self.save_path + os.sep +"image"+ os.sep + coder_title + ".jpg"]  # 采集成功的记录
                    self.word_content_list.append(sprider_content)  # 增加到最终的数组
                    self.haved_sprider_count = self.haved_sprider_count + 1
                    BaseFrame().debug("已经采集完成第" + str(self.haved_sprider_count) + "个")
                    time.sleep(1)
                    driver.back()
                    # 处理RAR文件
                    files = os.listdir(down_path)
                    srcFile = down_path+os.sep+files[0]
                    file_ext = os.path.splitext(srcFile)[-1]
                    dstFile = down_path+os.sep+coder_title+file_ext
                    os.rename(srcFile,dstFile)
                    # if "rar" in file_ext:
                    #     import rarfile
                    #     temp = rarfile.RarFile(dstFile)  # 待解压文件
                    #     temp.extractall(down_path)  # 解压指定文件路径
                    # elif "zip" in file_ext:
                    #     pass
                    srcFile=dstFile
                    dstFile=self.save_path+os.sep+coder_title+file_ext
                    shutil.move(srcFile, dstFile)  # 移动文件
                else:
                    BaseFrame().error("检测下载文件出错可能原因是等待时间不够已经超时,再等待60秒...")
                    time.sleep(60)
                    shutil.rmtree(down_path)
                    pass
            except Exception as e:
                time.sleep(60)
                shutil.rmtree(down_path)
                BaseFrame().error("sprider_detail()执行过程出现错误:" + str(e))
                #driver.get(sprider_url)
                #driver.quit()
        if(int(page_count)==int(max_page)):
            self.builder_word(self.folder_name,self.save_path,self.word_content_list)
            BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
    def builder_word(self, word_title, save_path, list_files):
        """
        输出产物是word文件
        :param word_title: 文件的标题
        :param save_path: 文件的保存路径
        :param list_files: 文件集合(单个内容)
        :return:
        """
        try:
            self.copy_file(self.save_path)
            print("Create Word"+word_title)
            file_count= len(list_files)
            self.gen_passandtxt(file_count,word_title)
            document = Document()
            document.add_heading("PHP"+word_title+"源码", level=2)
            document.add_paragraph("分享"+str(file_count)+"个"+word_title+"PHP源码,总有一款适合你\r\n"
                                   "下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。")
            ppt_tieles = ""
            for files in list_files:
                ppt_tieles = ppt_tieles + str(files[0]) + "\r"
            document.add_paragraph(ppt_tieles)
            for files in list_files:
                try:
                    document.add_paragraph(files[0])
                    document.add_picture(files[1], width=Inches(3))
                except Exception as e:
                    pass
            document.add_paragraph("最后送大家一首诗:")
            paragraph = document.add_paragraph()  # 单独控制
            paragraph.add_run("山高路远坑深,\r")
            paragraph.add_run("大军纵横驰奔,\r")
            paragraph.add_run("谁敢横刀立马?\r")
            paragraph.add_run("惟有点赞加关注大军。\r")
            paragraph.bold = True  # 字体加粗
            file_full_path=save_path+os.sep+word_title+".docx"
            document.save(file_full_path)
        except Exception as e:
            print("Create Word Fail reason:" + str(e))
    def copy_file(self,target_path):
        print("copy files")
        import os
        import shutil
        src_apk_file_path="薅羊毛专业版.apk"
        dst_apk_file_path=target_path+os.sep+"薅羊毛专业版.apk"
        shutil.copyfile(src_apk_file_path, dst_apk_file_path)  # 移动文件
        src_pdf_file_path = "薅羊毛专业版.pdf"
        dst_pdf_file_path = target_path + os.sep + "薅羊毛专业版.pdf"
        shutil.copyfile(src_pdf_file_path, dst_pdf_file_path)  # 移动文件
        src_doc_file_path = "readme.docx"
        dst_doc_file_path = target_path + os.sep + "readme.docx"
        shutil.copyfile(src_doc_file_path, dst_doc_file_path)  # 移动文件
        pass
    def gen_passandtxt(self,file_count,word_title):
        print("Create PassWord and Pass.txt")
        message=SpriderTools.gen_password()
        password = "".join(message)
        content=""
        content = content + "\n分享"+str(file_count)+"个"+word_title+"PHP源码"
        content = content + "\n\r"
        content=content+"\n都到这里了您就支持一下呗!谢谢老铁~~"
        content=content+"\n\r"
        content=content+"\n文件我就不一一列举了,送老铁一首打油诗"
        content=content+"\n学习知识费力气,"
        content=content+"\n收集整理更不易。"
        content=content+"\n知识付费甚欢喜,"
        content=content+"\n为咱码农谋福利。"
        content=content+"\n\r"
        content=content+"\n\r"
        content=content+"\n感谢您的支持"
        content=content+"\n\r" 
        content=content+"\n-------------------------------------------华丽分割线-------------------------------------------------------"
        content=content+"\n友情提醒解压密码:"+password+""
        full_path=self.save_path+os.sep+""+str(file_count)+"sell_pass.txt"
        with open(full_path, 'a', encoding='utf-8') as f:
            f.write(content)
if __name__ == "__main__":
    HuaJunCode().sprider(177)
    pass
目录
相关文章
|
12天前
|
Linux PHP 数据安全/隐私保护
2024授权加密系统PHP网站源码
2024授权加密系统PHP网站源码
91 58
|
17天前
|
前端开发 PHP 数据安全/隐私保护
知识付费系统源码 PHP
在数字经济背景下,知识付费成为新兴领域,尤其在线教育平台的兴起,使更多教育者通过知识付费系统销售课程,实现数字化转型与收入提升。开发此类平台需考虑众多技术细节和业务需求,如使用PHP语言实现支付功能,确保安全性、性能和可扩展性,选择合适的技术方案至关重要。
43 4
知识付费系统源码 PHP
|
4天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
49 3
|
1月前
|
PHP
20241125易支付PHP网站源码
PHP74,上传源码后解压访问域名/install 进行安装 安装完成 之后一定要设置伪静态 源码里面nginx.txt 就是伪静态 然后复制粘贴到伪静态里面保存即可
41 2
|
1月前
|
JavaScript PHP 数据安全/隐私保护
乞丐在线要饭系统PHP网站源码
在这个物欲横流、竞争激烈的时代,有时候我们真心觉得钱来得太不容易,甚至连最基本的生存都成了负担。于是,我们想出了一个特别“独特”的点子:用利息砸我,给我点施舍!
79 1
|
2月前
|
前端开发 JavaScript 小程序
前端uni开发后端用PHP的圈子系统该 如何做源码?
圈子系统系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP
|
2月前
|
前端开发 JavaScript PHP
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
|
3月前
|
PHP
PHP全自动采集在线高清壁纸网站源码
PHP全自动采集在线高清壁纸网站源码,PHP全自动采集在线高清壁纸网站源码,一款开源壁纸源码,无需安装。集合360壁纸,百度壁纸,必应壁纸,简单方便。每天自动采集,自动更新,非常不错,php源码 网站源码 免费源码 自动采集。
70 3
|
3月前
|
PHP 数据库
2024表白墙PHP网站源码
2024表白墙PHP网站源码
54 1
|
4月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
116 0