無限制網站源碼
① 求 一個免費的企業源碼ASP
http://www.sitee.cn/Soft/show.asp?id=34
② 免費企業網站源碼
易思easiysite pm4.1 開源無功能限制,php+sql架構,專為企業建站設計開發
官方網站:http://www.ecisp.cn/
官方交流群:4765284
③ List<T> 和 List<>分別代表什麼意思
List<T> 通常指的是泛型的一種情況,而List<?>的使用是在不確定返回的集合泛型是什麼類型的情況下所採用的一種方式。?表示是無限制的通配符。參數是可以任何的類型。List<T> list =new List<T>()。
泛型的定義主要有以下兩種:
1、在程序編碼中一些包含類型參數的類型,也就是說泛型的參數只可以代表類,不能代表個別對象。(這是當今較常見的定義)
2、在程序編碼中一些包含參數的類。其參數可以代表類或對象等等。(人們大多把這稱作模板)不論使用哪個定義,泛型的參數在真正使用泛型時都必須作出指明。

(3)無限制網站源碼擴展閱讀
泛型的一個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,並且減少了出錯機會。
盡管減少強制類型轉換可以降低使用泛型類的代碼的羅嗦程度,但是聲明泛型變數會帶來相應的羅嗦。比較下面兩個代碼例子。
泛型的一個附帶好處是,消除源代碼中的許多強制類型轉換。這使得代碼更加可讀,並且減少了出錯機會。盡管減少強制類型轉換可以降低使用泛型類的代碼的羅嗦程度,但是聲明泛型變數會帶來相應的羅嗦。比較下面兩個代碼例子。
該代碼不使用泛型:
List li = new ArrayList();
li.put(new Integer(3));
Integer i = (Integer) li.get(0);
該代碼使用泛型:
List<Integer> li = new ArrayList<Integer>();
li.put(new Integer(3));
Integer i = li.get(0)。
④ 哪位大神有基於java+mysql的學生管理系統的源代碼,其他系統也行,不限制,跪謝
簡單的效果如下圖

分析需要用到的技術:
圖形界面: 根據不同的需求, 可以選擇不同的技術進行開發;(重點是布局和事件處理機制)
pc端: 可以選擇swing ,awt ,javaFX
網頁端:JSP ;根據不同的需求進行選擇
移動端: JSP/android
數據存儲: 需要用到JDBC技術;(常用的SQL語句的掌握)
主要考察的是 綜合運用java技術的能力;
⑤ python爬蟲爬取只顯示10個
一個借口幾萬條數據但是只返回十條_爬蟲實踐之爬取10000條菜譜數據
2020-12-03 06:37:24
weixin_39990029
碼齡5年
關注
.png
爬蟲實踐之XX行代碼爬取10000菜譜數據
什麼是爬蟲
爬蟲:又叫做 網路蜘蛛,是一段自動抓取互聯網信息的程序,從互聯網上抓取對於我們有價值的信息。
點擊這里了解Python爬蟲介紹
如何合法地爬蟲
有些網站不允許網路爬蟲,或是對可爬取的內容做了限制,一個網站的爬蟲協議可通過訪問該網站的robots.txt文件獲得
以豆瓣網為例
訪問該網址(https://www.douban.com/robots.txt),可了解到豆瓣的爬蟲協議如下
.png
可以看到,豆瓣對於不同的訪問者有不同的訪問限制,其中對於用戶名為 Wandoujia Spider的訪問者,豆瓣不允許訪問。
我用到的菜譜網站對爬蟲無限制,所以爬蟲是合法的。
.png
本篇特色
連續爬取10000個網頁
引入第三方庫
import requests #發送請求
import re #正則表達式,用於提取網頁數據
import winsound #提醒程序運行結束
import time #計算程序運行時間
如果沒有安裝這些第三方庫,可以在命令提示符中輸入如下代碼,進行下載
pip install requests,re,winsound,time
爬蟲的三個步驟
獲取要爬取的所有網頁的網址
提取網頁內容中的有用信息
信息導出
每個步驟對應一個函數
Step_1 獲取要爬取的所有網頁的網址
首先我們打開該網址,查看它的源代碼
.png
.png
網頁源代碼
觀察發現每道菜對應的網址在這個目錄下
.png
用正則表達式獲得該網址,寫入列表中
由於每一個網頁只有十道菜,點擊下一頁後發現網頁的變化規律為換頁時網址只有數字改變
.png
可以看到最多有1000頁,也就是有10000道菜
.png
使用循環,將每一頁的菜對應的網址都寫入列表,每一次寫入時寫入一行列表,多次寫入後,形成一個二維的列表,前兩頁的菜譜網址在二維列表中顯示如下:
.png
代碼如下
all_url = [] #創建一個數組用於存儲網頁地址
def get_all_url(n): #這個函數用於獲得網頁中的菜的全部網址
if(n==1):
url = "https://m.meishij.net/caixi/sucai1/"
else:
url='https://m.meishij.net/caixi/sucai1/p%s/'%n #%s相當於C語言中的%s,表示格式化一個對象為字元,同理%d表示格式化一個對象為整數
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36" }
response = requests.get(url,headers=headers) #訪問網頁
response.encoding = "utf-8" #設置接收編碼格式
pattern = re.compile(r'<a target="_blank" href="([a-zA-z]+://[^s]*)">', re.S)
#正則表達式提取網頁中的網址,re.S表示在整個文本中進行匹配,如果不加re.S,將只在一行進行匹配
result = pattern.findall(response.text) #獲取的網頁結果存儲到result里
all_url.append(result[0:10])#由於每頁只有十道菜,result中只有前十條對應的是菜的網址,故我們只添加前十條
return all_url #作為返回值返回這個列表
關於headers的說明
在使用python爬蟲爬取數據的時候,經常會遇到一些網站的反爬蟲措施,一般就是針對於headers中的User-Agent,如果沒有對headers進行設置,User-Agent會聲明自己是python腳本,而如果網站有反爬蟲的想法的話,必然會拒絕這樣的連接。而修改headers可以將自己的爬蟲腳本偽裝成瀏覽器的正常訪問,來避免這一問題。 點擊這里了解詳情
關於編碼格式utf-8 的說明
utf-8,可以編碼中文,大部分python編譯器都默認編碼方式為utf-8 點擊這里了解詳情
Step_2 提取網頁中的有用信息
打開一道菜的網址,查看源代碼,尋找我們需要的信息在哪裡,然後用正則表達式獲取,流程與上個函數獲取網址相同
主輔料信息在這里
.png
特徵信息在這里(包括做法和口味)
.png
def get_info(resp,output):
name_pattern = re.compile(r'<h1>(.*)</h1>')# 正則表達式獲取菜名信息
food_pattern = re.compile(r'<span class="t">(.*)</span><span class="a">(.*)</span></a></div>')# 正則表達式獲得主料信息
fixing_pattern = re.compile(r'<div class="c_mtr_li"><span class="t1">(.*)</span><span class="a">(.*)</span></div>') # 正則表達式獲得輔料信息
fearture1_pattern = re.compile(r'<div class="cpargs cpargs2"><div class="i"></div>(.)</div>')# 正則表達式獲得特徵_1
fearture2_pattern = re.compile(r'<div class="cpargs cpargs3"><div class="i"></div>(.*)</div>')# 正則表達式獲得特徵_2
name = name_pattern.findall(resp.text) # 提取菜名信息
food = food_pattern.findall(resp.text)# 提取主料信息
fixing = fixing_pattern.findall(resp.text)#提取輔料信息
fearture1 = fearture1_pattern.findall(resp.text) #提取特徵_1
fearture2 = fearture2_pattern.findall(resp.text)#提取特徵_2
output.write(str(name))#將菜名寫入output文件,write函數不能寫int類型的參數,所以使用str()轉化
output.write('t')#進入下一個單元格
output.write(str(fearture1))#將特徵_1寫入output文件
output.write('t')#進入下一個單元格
output.write(str(fearture2))#將特徵_2寫入output文件
output.write('t')#進入下一個單元格
for i in range(len(food)):
for j in range(len(food[i])):
output.write(str(food[i][j])) #寫入主料
output.write('t')
if(len(food)<11):
output.write('t'*2*(11-len(food))) #每道菜的主料數目不同,該行代碼可使表格內容對齊
for i in range(len(fixing)):
for j in range(len(fixing[i])):
output.write(str(fixing[i][j])) #寫入輔料
output.write('t')
output.write('n') #換行
Step_3 信息導出
def spider():
output = open('E:programingpython蘇菜_2.xls','w',encoding='utf-8')#創建一個excel文件,編碼格式為utf-8
output.write('名稱t做法t特色t主料')#寫入標題欄
output.write('t'*22)#使內容對齊
output.write('輔料n')#寫入標題欄
for i in range(len(all_url)):
for j in range(len(all_url[i])):
url2=all_url[i][j]
response = requests.get(url2)#逐個訪問網頁,獲得數據
response.encoding = "utf-8" #設置接收編碼格式
get_info(response,output)#處理數據,提取信息
output.close()#關閉文件
主函數
time_start = time.time()#記錄程序開始時間
for i in range(1,2):#逐頁獲取菜譜網頁信息
get_all_url(i)
spider()#進行提取處理並導出
ration = 1000#提示音時長,1000毫秒 = 1秒
freq = 440 #提示音頻率
time_end=time.time()#記錄程序結束時間
print('totally cost',time_end-time_start)#列印程序運行時間
winsound.Beep(freq,ration*10) #響鈴提示程序結束
經實驗,爬取10000條代碼需要用時3453秒左右
.png
最後獲得的數據如下
.png
寫在後面
我是一個C語言上不了80的小白,全靠某度和某歌東拼西湊我的這個程序,在代碼風格與寫作等方面存在不可避免地會有一些錯誤和不足的地方,希望大家多多與我交流,多多批評指教我。
