粒子群最优算法等源代码,希望有需要的能自行下载,压缩包包括了Text解析,忘使用前阅读
标签: 粒子群最优算法等源代码
上传时间: 2016-05-27
上传用户:我会发光biubiubiu
[开源 绿色软件] [运行环境 Windows XP/7/8/10] [语言 简体/繁體/English/Unicode] A cool music player. Powered by Bass and BassVis. 极简本地音乐播放器,透明、纯文本界面。支持轻媒体库、歌词、可视化。最小化到托盘,占用资源少,适合边听音乐边工作。 应网友要求,加入了Tag编辑、自动切换列表、播放队列、鼠标手势、均衡器、音频设备选择、全局音量滚轮(托盘区域)、字体设置、极简模式、鼠标穿透、嵌入桌面、简单布局等功能。 homepage> mcool.appinn.me ==================================================== 音频格式APE、FLAC、WavPack、MP3、OGG、TTA、TAK、Musepack、AAC、AC3、WMA、Wav、CD、ALAC、Aiff、MOD、CUE ==================================================== 更新历史: 3336 -2016.3.25 点睛之笔:任意布局(追上foobar2000)。Arbitrary layout (all in one). 3330 -2016.3.10 一体布局之比例调节(初具foobar2000风貌)。Ratio adjust (all in one). 3308 -2015.11.28 歌词微调(在选项>常规>鼠标手势里设置)。Adds function of lyrics tuning. 3306 -2015.11.15 电台模式(整点时切换歌曲或列表,并非在线音乐),以及多声卡支持。Adds radio mode, and multi sound card support. 3300 -2015.10.15 完善细节,修复切歌卡住bug。完美版。Fixes some bugs. 3280 -2015.8.1 简单布局功能。Layout (all in one) function. 3260 -2015.6.1 Win10模式。Win10 mode. 3252 -2015.5.10 任务栏进度条。Taskbar progress display. 3236 -2015.4.10 点睛之笔:透明度调节。Adds function of transparency tuning. 3232 -2015.3.25 自定义软件名(请在mcool.ini中手动修改)。Adds function of customizing app name. 3230 -2015.3.12 Airplay复刻界面。Airplay interface copy. 3218 -2015.1.20 桌面歌词。Desktop lyrics. 3216 -2015.1.12 一体化界面(学习Foobar2000和豆瓣FM)。All in one interface. 3212 -2015.1.6 新增Winamp音效插件支持(学习千千静听),以及滚轮穿透功能(学习Airplay3)。Adds Winamp DSP plugins support, and adds function of wheel transparent. Winamp音效插件下载:http://uploadgeneration.info/Winamp/www.winamp.com/plugins/dsp-effect/5/top-rated.html 3210 -2014.12.28 重要更新:本地音量调节、自定义鼠标键/手势。Adds local volume control, and adds fuction of customizing mouse control / gesture. 3208 -2014.11.25 简化右键菜单,常规项目移到选项窗口。Simplifies the popup menu, moves the general items to option window. 3206 -2014.11.22 新增文本对齐选项,重新设计导航按钮。Adds option of Text alignment, and redesigns the buttons of playback. 3202 -2014.11.10 新增播放记忆、片段循环(Hotkey: Ctrl+1/2)和贴边隐藏功能。Adds functions of playback memory, AB repeat and screen side hide. 3200 -2014.11.5 新增无界面选项(先去掉托盘图标,然后Ctrl+Alt+W隐藏界面,Ctrl+Alt+X关闭)。Adds option of no interface. 3191 -2014.8.26 嵌入桌面。Pins to desktop. 3190 -2014.8.19 音乐管理第一步:列表分组。Playlists grouping. 3186 -2014.8.10 基于列表的分级系统(Hotkey:0..5)。Rating system based on playlist. 3181 -2014.8.1 启用新图标(由虹吸墨作者BGLL友情制作)。Uses the new icon. 3180 -2014.7.22 新增Win7任务栏特效。Adds windows 7 taskbar effect. 3166 -2014.6.29 重要更新:自动下载专辑封面(源于歌词迷)。Downloads album covers from geci.me. 3160 -2014.6.1 重要更新:新增极简模式,以及OGG/Opus内置封面显示功能。Adds minimalist mode, and adds function of displaying cover embedded in OGG/Opus. 3152 -2014.5.18 添加托盘右键菜单,新增MP4/M4A(ALAC)内置封面显示功能。Adds systray popup menu, and adds function of displaying cover embedded in MP4/M4A(ALAC). 3151 -2014.5.1 重新设计可视化效果,新增示波器效果。Redesigns visual effects, and adds oscilloscope effect. 3150 -2014.4.20 采用歌词迷API下载歌词。Downloads lyrics from geci.me. 3136 -2014.3.30 加入可选的按钮,以及鼠标穿透功能。Adds function of transparent window. 3132 -2014.3.6 简化界面,向Foobar2K看齐;增加正在播放面板。Simplifies the interface, and adds now playing panel. 3130 -2014.2.26 重要更新:按照专辑分组。Grouping by album. 3120 -2014.2.18 优化字体渲染(Windows7/8下)。Optimizes font rendering in Windows 7/8. 3110 -2014.1.26 点睛之笔:自定义字体颜色。Adds function of customizing font color. 3108 -2013.11.16 Last.fm同步功能(请到主页下载插件)。Last.fm scrobbler support. 3106 -2013.11.8 可回溯的随机播放(学习Airplay 2)。Random playback can be traced back. 3103 -2013.10.12 优化右键菜单。Optimizes popup menu. 3102 -2013.9.30 修改滚动条样式,增加音频缓冲选项。Modifies style of scroll bar, and adds option of audio buffer length. 3100 -2013.9.10 无边框设计;迷你模式也可以不置顶(Hotkey:T)。Borderless designs. 3086 -2013.8.20 增加歌词面板功能。Adds function of lyrics panel. 3082 -2013.8.08 增加在可视化界面显示歌词功能。Adds function of displaying lyrics on visual interface. 3080 -2013.8.01 新增设置字体功能,恢复简单的自动关机功能。Adds function of setting font, and re-adds simple function of auto shutdown. 3060 -2013.6.26 修复在迷你模式停止响应的Bug,去掉自动关机、歌词调整功能。Fixes bug of stop responding in mini mode, and removes functions of auto shutdown and lyrics trimming. 3050 -2013.5.23 增加手势功能。Adds gesture function. 3030 -2013.3.10 增加Aero磨砂玻璃效果[如需源码请联系我],XP/Win7/8无差别显示,按Insert键开启。Adds aero glass effect. 3020 -2013.2.23 增加简易Tag编辑功能(选中并单击即可,相当于资源管理器中的重命名,按照[歌手 - 歌名][专辑]格式进行编辑)。Adds function of editing audio tags (select and click, edit with [artist - title][album] format). 3010 -2013.1.23 应网友要求,加入读取内嵌CUE、歌词及专辑封面功能。Adds function of reading CUE, LRC and album cover built in media. 3002 -2012.11.03 无按钮设计;微调进度条尺寸。Buttonless design; modifies the size of the progress bar. 3001 -2012.10.15 重要改进,界面即按钮:单击 - 播放/暂停,按住 - 前进。Important update, the interface is a button: Click - Play/Pause, Hold Down - Next. 3000 -2012.9.28 增加Win8模式。Adds Win8 mode option. 2982 -2012.8.26 在Win8下使用微软雅黑字体。Uses Microsoft YaHei font in Windows 8 CHS. 2981 -2012.8.20 视频以插件提供(请到主页下载),增加单曲循环功能。Adds function of repeat track. 2980 -2012.7.26 简化代码,去掉视频和MIDI支持。Removes the video and MIDI support. 2970 -2012.7.20 增加媒体信息显示功能。Adds function of displaying media info. 2960 -2012.6.28 增加专辑封面显示功能(Hotkey:Ins)。Adds function of displaying album cover. 2956 -2012.6.01 再次简化界面。Simplifies the interface again. 2952 -2012.4.28 增加音频设备选择功能:DS、ASIO、WASAPI。Adds function of selecting playback device. 2950 -2012.3.30 *增加滚轮调节音量功能(在托盘,中键静音)和媒体键支持。Adds function of setting volume by mouse wheel (over systray, middle click to mute), and adds multimedia keys support. 2936 -2012.3.17 微调界面,修复物理删除失效的BUG。Fine-tunes the interface, and restores the physical delete function. 2930 -2012.2.27 增加TAK格式支持。Adds TAK format support. 2923 -2012.2.12 紧急修复上一版出现的字体模糊BUG(Vista/Win7下),增加在任务栏显/隐图标功能(Ctrl+T)。Fixes font vague bug for Vista/Win7, and adds showing/hiding icon on taskbar function. 2920 -2012.2.08 微调界面,优化CPU占用(启用背景图片时)。Fine-tunes the interface, and optimizes CPU utilization (while enable background image). 2912 -2012.1.12 增加播放队列功能。Adds playback queue function. 2910 -2011.12.25 改进迷你模式,增加查找功能。Improves mini mode, and adds find function. *注:此功能对杀毒软件过敏,开启方法:按F1进入选项,勾选全局快捷键。The feature is allergic to the anti-virus software.
上传时间: 2016-06-10
上传用户:fanghua
可以自定义和继承 /// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Text = "Form1"; }
上传时间: 2016-08-15
上传用户:baobao9437
// 学生管理.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 // Global Variables: HINSTANCE hInst; // current instance TCHAR szTitle[MAX_LOADSTRING]; // The title bar Text TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar Text // Foward declarations of functions included in this code module: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); struct person { char name[10]; int ID; int cj_yw; int cj_sx; struct person* next; struct person* pro; }per; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MY); // Main message loop: while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } // // FUNCTION: MyRegisterClass() // // PURPOSE: Registers the window class. // // COMMENTS: // // This function and its usage is only necessary if you want this code // to be compatible with Win32 systems prior to the 'RegisterClassEx' // function that was added to Windows 95. It is important to call this function // so that the application will get 'well formed' small icons associated // with it. // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_MY); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_MY; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex); } // // FUNCTION: InitInstance(HANDLE, int) // // PURPOSE: Saves instance handle and creates main window // // COMMENTS: // // In this function, we save the instance handle in a global variable and // create and display the main program window. // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { HWND hWnd; hInst = hInstance; // Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE; } // // FUNCTION: WndProc(HWND, unsigned, WORD, LONG) // // PURPOSE: Processes messages for the main window. // // WM_COMMAND - process the application menu // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // Mesage handler for about box. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; }
上传时间: 2016-12-29
上传用户:767483511
// 学生管理.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 // Global Variables: HINSTANCE hInst; // current instance TCHAR szTitle[MAX_LOADSTRING]; // The title bar Text TCHAR szWindowClass[MAX_LOADSTRING]; // The title bar Text // Foward declarations of functions included in this code module: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); struct person { char name[10]; int ID; int cj_yw; int cj_sx; struct person* next; struct person* pro; }per; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. MSG msg; HACCEL hAccelTable; // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MY); // Main message loop: while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } // // FUNCTION: MyRegisterClass() // // PURPOSE: Registers the window class. // // COMMENTS: // // This function and its usage is only necessary if you want this code // to be compatible with Win32 systems prior to the 'RegisterClassEx' // function that was added to Windows 95. It is important to call this function // so that the application will get 'well formed' small icons associated // with it. // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_MY); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_MY; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex); } // // FUNCTION: InitInstance(HANDLE, int) // // PURPOSE: Saves instance handle and creates main window // // COMMENTS: // // In this function, we save the instance handle in a global variable and // create and display the main program window. // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { HWND hWnd; hInst = hInstance; // Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE; } // // FUNCTION: WndProc(HWND, unsigned, WORD, LONG) // // PURPOSE: Processes messages for the main window. // // WM_COMMAND - process the application menu // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // Mesage handler for about box. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; }
标签: 学生 计算器
上传时间: 2016-12-29
上传用户:767483511
Received: from mail.creditcard.cmbc.com.cn (unknown [111.205.122.39]) by newmx82.qq.com (NewMx) with SMTP id for <714620454@QQ.COM>; Fri, 20 Oct 2017 03:56:09 +0800 X-QQ-FEAT: nHaaMjwLeTyzuDp5C5V++RVfPHSVEqOujK0vwZroSro= X-QQ-MAILINFO: MjJD59SVx+LnQ1oU2sDuZ8tZJyZAOGTJaybWFAYRjurknrZoc6gjmnU06 o+pkiTJsdtxgA5CmtpN2ggrWb/T2GoG07QFXqgJtIk+5X1iaz4UykQ9M2a782+Fdn83doxC 4Ej1t99JoZcj8dDkeM5dzZTSR8uZGwHEnIK9Uim+NcaroB2EUWgclSmSzIxUHIbJ1nTLA8G B4/wa X-QQ-mid: mx82t1508442969ti70kc84u X-QQ-ORGSender: master@creditcard.cmbc.com.cn Received: from sedm([195.203.59.13]) by mail.creditcard.cmbc.com.cn(1.0) with SMTP id sedm587; Thu, 19 Oct 2017 17:48:11 +0800 Date:Thu, 19 Oct 2017 17:48:11 +0800 (CST) Message-ID:<0305-euid-31911508406491578> To:=?gbk?B?zsTS1SDFrsq/?=<714620454@QQ.COM> From:master<master@creditcard.cmbc.com.cn> Subject: =?gbk?B?w/HJ+tDF08O/qDIwMTfE6jEw1MK159fTttTVy7Wl?= X-Priority: 3 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: multipart/related; boundary="****MAIN_BOUNDARY****2727BD00F7949069C75FEDD44F1F2988" This is a multi-part message in MIME format. --****MAIN_BOUNDARY****2727BD00F7949069C75FEDD44F1F2988 Content-Type: multipart/alternative; boundary="****SUB_BOUNDARY****2727BD00F7949069C75FEDD44F1F2988" --****SUB_BOUNDARY****2727BD00F7949069C75FEDD44F1F2988 Content-Type: Text/html; charset="gb2312" Content-Transfer-Encoding: base64
标签: 源代码
上传时间: 2017-11-17
上传用户:wendingchang
CCS样式选择符,初学者,设计,DW,网页制作,大一作业 部分预览: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="Text/html; charset=utf-8" /> <title>CSS样式选择符</title> <style type="Text/css"> body { background-image:url(images/%E8%83%8C%E6%99%AF%E5%9B%BE%E7%89%87.jpg); background-repeat:repeat; } .class1 { Text-align:center; font-weight:bolder; } .class2 { font-family:"仿宋"; Text-indent:8em; } .class3 { font-size:18px; font-family:"宋体"; Text-indent:4em; } #id1 { font-family:Zombie, Verdana, "Comic Sans MS"; font-style:oblique; font-size:64px; } #id2 { font-family:"黑体"; font-size:36px; } #id3 { color:#F69; font-weight:bolder; Text-shadow:#FCC; } </style> </head> <body> <table width="780" height="1555" border="0" cellspacing="0" align="center" bgcolor="#FFFFFF"> <tr height="30"> <td align="center"><img src="images/顶部图片.jpg" /></td> </tr>
上传时间: 2017-12-07
上传用户:圈圈Ace
css美化有序列表,贴出部分css代码 <ol > <li>先涂粉底再涂防晒</li> <li>先涂防晒再涂粉底</li> </ol> <!doctype html> <html> <head> <title>CSS3 ordered list styles - demo</title> <style> body{ margin: 40px auto; width: 500px; } /* -------------------------------------- */ ol{ counter-reset: li; list-style: none; *list-style: decimal; font: 15px 'trebuchet MS', 'lucida sans'; padding: 0; margin-bottom: 4em; Text-shadow: 0 1px 0 rgba(255,255,255,.5); } ol ol{ margin: 0 0 0 2em; } /* -------------------------------------- */
上传时间: 2018-08-22
上传用户:53660542
以后再也不用担心写爬虫ip被封,不用担心没钱买代理ip的烦恼了 在使用python写爬虫时候,你会遇到所要爬取的网站有反爬取技术比如用同一个IP反复爬取同一个网页,很可能会被封。如何有效的解决这个问题呢?我们可以使用代理ip,来设置代理ip池。 现在教大家一个可获取大量免费有效快速的代理ip方法,我们访问西刺免费代理ip网址 这里面提供了许多代理ip,但是我们尝试过后会发现并不是每一个都是有效的。所以我们现在所要做的就是从里面提供的筛选出有效快速稳定的ip。 以下介绍的免费获取代理ip池的方法: 优点:免费、数量多、有效、速度快 缺点:需要定期筛选 主要思路: 从网址上爬取ip地址并存储 验证ip是否能使用-(随机访问网址判断响应码) 格式化ip地址 代码如下: 1.导入包 import requests from lxml import etree import time 1 2 3 2.获取西刺免费代理ip网址上的代理ip def get_all_proxy(): url = 'http://www.xicidaili.com/nn/1' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36', } response = requests.get(url, headers=headers) html_ele = etree.HTML(response.Text) ip_eles = html_ele.xpath('//table[@id="ip_list"]/tr/td[2]/Text()') port_ele = html_ele.xpath('//table[@id="ip_list"]/tr/td[3]/Text()') proxy_list = [] for i in range(0,len(ip_eles)): proxy_str = 'http://' + ip_eles[i] + ':' + port_ele[i] proxy_list.append(proxy_str) return proxy_list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3.验证获取的ip def check_all_proxy(proxy_list): valid_proxy_list = [] for proxy in proxy_list: url = 'http://www.baidu.com/' proxy_dict = { 'http': proxy } try: start_time = time.time() response = requests.get(url, proxies=proxy_dict, timeout=5) if response.status_code == 200: end_time = time.time() print('代理可用:' + proxy) print('耗时:' + str(end_time - start_time)) valid_proxy_list.append(proxy) else: print('代理超时') except: print('代理不可用--------------->'+proxy) return valid_proxy_list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4.输出获取ip池 if __name__ == '__main__': proxy_list = get_all_proxy() valid_proxy_list = check_all_proxy(proxy_list) print('--'*30) print(valid_proxy_list) 1 2 3 4 5 技术能力有限欢迎提出意见,保证积极向上不断学习 ———————————————— 版权声明:本文为CSDN博主「彬小二」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_39884947/article/details/86609930
上传时间: 2019-11-15
上传用户:fygwz1982
Delphi三层数据库连接池 (1) Connection Pool for Delphi release notes ------------------------------------------------------------------------------- This document contains: - Short description of the product - Other Text files - TRIAL version limitations - Delphi - versions supported - Installation of Connection Pool for Delphi - Installation of Connection Pool for Delphi help file - Ordering information - Support and Web resources - Thanks To
上传时间: 2019-12-12
上传用户:me2008