Python 爬虫之 requests模块(ua伪装、代理、cookies、防盗链 Referer)、re模块、xpath模块、selenium

Python 爬虫

requests

下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

发送 get 请求

案例:百度

import requests

url = "http://www.baidu.com"

# 发送 get 请求
response = requests.get(url)

# 设置字符集 (根据爬取网页 charset=utf-8)
response.encoding = 'utf8'

# 获取网页源代码
print(response.text)

发送 post 请求

案例:百度翻译
Python 爬虫之 requests模块(ua伪装、代理、cookies、防盗链 Referer)、re模块、xpath模块、selenium_第1张图片
Python 爬虫之 requests模块(ua伪装、代理、cookies、防盗链 Referer)、re模块、xpath模块、selenium_第2张图片

import requests

url = "https://fanyi.baidu.com/sug"

# 搜索词
data = {
    "kw":"love"
}
# 发送 get 请求
response = requests.post(url,data)

# 如果返回值是 json 数据,可直接调用 json() 方法
print(response.json())

UA 伪装

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52"
}

response = requests.get(url, headers=headers)

代理

proxy = {
    "http": "121.233.212.34:3432"
}

response = requests.get(url, proxies=proxy)

cookies 登录

案例:17k小说网

import requests

sessions = requests.session()

url = 'https://passport.17k.com/ck/user/login'
data = {
    "loginName": "15675521581",
    "password": "**"
}
res = sessions.post(url, data=data)
# print(res.cookies)

result = sessions.get(url = 'https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919')
print(result.json())

防盗链 Referer

案例:梨视频

import requests

# 抓包的视频地址 https://video.pearvideo.com/mp4/short/20161103/1683211212907-10041181-hd.mp4
# 实际播放的地址 https://video.pearvideo.com/mp4/short/20161103/cont-1007270-10041181-hd.mp4
# 比较两个地址需要把抓包地址后面的时间戳替换为 cont-id
url = 'https://www.pearvideo.com/videoStatus.jsp?contId=1007270&mrd=0.2400885482825692'
refererUrl = "https://www.pearvideo.com/video_1007270"
contId = refererUrl.split('_')[1]

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
    "Referer": refererUrl
}

res = requests.get(url, headers=headers)
# 抓包返回的数据
dict = res.json()
print(dict)
# 抓包返回的时间戳
systemTime = dict['systemTime']
# 抓包返回的视频地址
srcUrl = dict['videoInfo']['videos']['srcUrl']
# 地址处理
newUrl = srcUrl.replace(systemTime, f"cont-{contId}")
print(newUrl)

# 下载视频到本地
with open('test.mp4', mode='wb') as f:
    f.write(requests.get(newUrl).content)

re 模块

findall

import re

result = re.findall(r"\d+","今天写了2行代码,赚了200元。")
print(result) # ['2', '200'] 返回列表

search

import re

result = re.search(r"\d+","今天写了2行代码,赚了200元。")
print(result) #  只匹配第一个值,然后返回
print(result.group()) # 2  从 match 获取匹配的值

finditer

import re

result = re.finditer(r"\d+","今天写了2行代码,赚了200元。")
print(result) #  把所有结果放在迭代器里

for item in result:
    # 2
    #  200
    print(item,item.group()) 

预加载

提前写好正则表达式

import re

obj = re.compile(r"\d+")

result = obj.findall("今天写了2行代码,赚了200元。")
print(result) # ['2', '200']

匹配换行 re.S

obj = re.compile(r"\d+",re.S)

在 html 中使用

import re

s = """

"""
# 输出如下格式
# http://www.baidu.com Baidu
# http://www.weixin.com weixin

obj = re.compile(r'')

result = obj.finditer(s)
for item in result:
    print(item.group(1),item.group(2))

原子组使用别名

obj = re.compile(r'
(?P.*?)</a></div>'</span><span class="token punctuation">)</span> result <span class="token operator">=</span> obj<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span>s<span class="token punctuation">)</span> <span class="token keyword">for</span> item <span class="token keyword">in</span> result<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span>item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">'url'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">'title'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> </code></pre> <h3>爬取豆瓣电影 https://movie.douban.com/chart</h3> <p><a href="http://img.e-com-net.com/image/info8/56cb9f754de24f00a504e3d1fb510b4f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/56cb9f754de24f00a504e3d1fb510b4f.jpg" alt="Python 爬虫之 requests模块(ua伪装、代理、cookies、防盗链 Referer)、re模块、xpath模块、selenium_第3张图片" width="650" height="300" style="border:1px solid black;"></a></p> <pre><code class="prism language-python"><span class="token keyword">import</span> requests <span class="token keyword">import</span> re url <span class="token operator">=</span> <span class="token string">'https://movie.douban.com/chart'</span> headers <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token string">"user-agent"</span><span class="token punctuation">:</span> <span class="token string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52"</span> <span class="token punctuation">}</span> response <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>url<span class="token punctuation">,</span> headers<span class="token operator">=</span>headers<span class="token punctuation">,</span><span class="token punctuation">)</span> response<span class="token punctuation">.</span>encoding <span class="token operator">=</span> <span class="token string">'utf-8'</span> <span class="token comment"># re.S 可以让 re 匹配到换行符</span> obj <span class="token operator">=</span> re<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span><span class="token string">r'<dl class="">.*?<dd>.*?<a .*?class="">(.*?)</a>'</span><span class="token punctuation">,</span>re<span class="token punctuation">.</span>S<span class="token punctuation">)</span> content <span class="token operator">=</span> obj<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span>response<span class="token punctuation">.</span>text<span class="token punctuation">)</span> <span class="token keyword">for</span> item <span class="token keyword">in</span> content<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">str</span><span class="token punctuation">(</span>item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span>strip<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># 哈利·波特与凤凰社</span> <span class="token comment"># 茶馆</span> <span class="token comment"># 喜剧之王</span> <span class="token comment"># 萤火虫之墓</span> <span class="token comment"># 少年派的奇幻漂流</span> <span class="token comment"># 上帝之城</span> <span class="token comment"># 疯狂原始人</span> <span class="token comment"># 机器人总动员</span> <span class="token comment"># 泰坦尼克号</span> <span class="token comment"># 谍影重重</span> <span class="token comment"># 红辣椒</span> <span class="token comment"># 神偷奶爸</span> </code></pre> <h2>xpath</h2> <h3>lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 4 and head, line 6, column 8 错误</h3> <p>错误的原因是解析的html文件中,开始的标签和结束的标签不匹配</p> <p>根据报错提示,找到对应的位置添加结束标签即可<br> 单标签在括号里添加 /<br> 双标签写上对应的结束标签</p> <h3>lxml</h3> <p>下载</p> <pre><code class="prism language-python">pip install <span class="token operator">-</span>i https<span class="token punctuation">:</span><span class="token operator">//</span>pypi<span class="token punctuation">.</span>tuna<span class="token punctuation">.</span>tsinghua<span class="token punctuation">.</span>edu<span class="token punctuation">.</span>cn<span class="token operator">/</span>simple lxml </code></pre> <h3>解析本地</h3> <pre><code class="prism language-python"><span class="token keyword">from</span> lxml <span class="token keyword">import</span> etree tree <span class="token operator">=</span> etree<span class="token punctuation">.</span>parse<span class="token punctuation">(</span><span class="token string">'index.html'</span><span class="token punctuation">)</span> </code></pre> <h3>解析服务器响应文件</h3> <pre><code class="prism language-python"><span class="token keyword">from</span> lxml <span class="token keyword">import</span> etree tree <span class="token operator">=</span> etree<span class="token punctuation">.</span>HTML<span class="token punctuation">(</span><span class="token punctuation">)</span> </code></pre> <h3>基本语法</h3> <p>html</p> <pre><code class="prism language-html"><span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>en<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>UTF-8<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>title</span><span class="token punctuation">></span></span>Title<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>title</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>head</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ul</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>zs<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>zs<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span> <span class="token punctuation">></span></span>ls<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>xr<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>xr<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>li</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>xr<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>xr<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>xr2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>li</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ul</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>icon.png<span class="token punctuation">"</span></span> <span class="token attr-name">alt</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span> </code></pre> <p>基本语法示例</p> <pre><code class="prism language-python"><span class="token keyword">from</span> lxml <span class="token keyword">import</span> etree tree <span class="token operator">=</span> etree<span class="token punctuation">.</span>parse<span class="token punctuation">(</span><span class="token string">'index.html'</span><span class="token punctuation">)</span> <span class="token comment"># 查找 ul 下的所有 li</span> <span class="token keyword">print</span><span class="token punctuation">(</span>tree<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">"//ul/li"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># [<Element li at 0x20b094f3dc0>, <Element li at 0x20b094f3e80>, <Element li at 0x20b094f3f00>]</span> <span class="token comment"># 获取 ul 下 li class="xr" 值</span> <span class="token keyword">print</span><span class="token punctuation">(</span>tree<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">"//ul/li[@class='xr']/text()"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># ['xr', 'xr2']</span> <span class="token comment"># 查找 ul 下第一个 li</span> <span class="token keyword">print</span><span class="token punctuation">(</span>tree<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">"//ul/li[1]/text()"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># ['zs']</span> <span class="token comment"># 获取 img 标签 src 属性值</span> <span class="token keyword">print</span><span class="token punctuation">(</span>tree<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">"//img/@src"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># ['icon.png']</span> <span class="token comment"># 查找 ul 下 li id="xr" 并且 class="xr"</span> <span class="token keyword">print</span><span class="token punctuation">(</span>tree<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">"//ul/li[@class='xr' and @id='xr']/text()"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># ['xr2']</span> </code></pre> <h2>selenium</h2> <p>下载</p> <pre><code class="prism language-python">pip install selenium </code></pre> <p>下载谷歌驱动</p> <pre><code>https://chromedriver.storage.googleapis.com/index.html </code></pre> <p>基本使用</p> <pre><code class="prism language-python"><span class="token keyword">from</span> selenium <span class="token keyword">import</span> webdriver <span class="token keyword">from</span> selenium<span class="token punctuation">.</span>webdriver<span class="token punctuation">.</span>chrome<span class="token punctuation">.</span>service <span class="token keyword">import</span> Service <span class="token keyword">from</span> selenium<span class="token punctuation">.</span>webdriver<span class="token punctuation">.</span>common<span class="token punctuation">.</span>by <span class="token keyword">import</span> By <span class="token keyword">from</span> time <span class="token keyword">import</span> sleep url <span class="token operator">=</span> <span class="token string">'https://www.lagou.com'</span> <span class="token comment"># path = Service('./chromedriver.exe')</span> <span class="token comment"># 取消自动关闭浏览器</span> option <span class="token operator">=</span> webdriver<span class="token punctuation">.</span>ChromeOptions<span class="token punctuation">(</span><span class="token punctuation">)</span> option<span class="token punctuation">.</span>add_experimental_option<span class="token punctuation">(</span><span class="token string">"detach"</span><span class="token punctuation">,</span> <span class="token boolean">True</span><span class="token punctuation">)</span> <span class="token comment"># 创建浏览器对象</span> driver <span class="token operator">=</span> webdriver<span class="token punctuation">.</span>Chrome<span class="token punctuation">(</span>options<span class="token operator">=</span>option<span class="token punctuation">)</span> <span class="token comment"># driver = webdriver.Chrome()</span> <span class="token comment"># 最大化窗口</span> <span class="token comment"># driver.maximize_window()</span> <span class="token comment"># 最小化窗口</span> <span class="token comment"># driver.minimize_window()</span> <span class="token comment"># 打开地址</span> driver<span class="token punctuation">.</span>get<span class="token punctuation">(</span>url<span class="token punctuation">)</span> <span class="token comment"># 获取网站的 title 标签内容</span> <span class="token comment"># print(driver.title)</span> <span class="token comment"># 通过 xpath 查找元素</span> btn <span class="token operator">=</span> driver<span class="token punctuation">.</span>find_element<span class="token punctuation">(</span>by<span class="token operator">=</span>By<span class="token punctuation">.</span>XPATH<span class="token punctuation">,</span> value<span class="token operator">=</span><span class="token string">'//*[@id="cboxClose"]'</span><span class="token punctuation">)</span> <span class="token comment"># <button type="button" id="cboxClose">close</button></span> <span class="token comment"># 获取值 和 type 属性 ---- close button</span> <span class="token keyword">print</span><span class="token punctuation">(</span>btn<span class="token punctuation">.</span>text<span class="token punctuation">,</span> btn<span class="token punctuation">.</span>get_attribute<span class="token punctuation">(</span><span class="token string">'type'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># 点击按钮</span> btn<span class="token punctuation">.</span>click<span class="token punctuation">(</span><span class="token punctuation">)</span> sleep<span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span> <span class="token comment"># 根据 id 获取</span> search_btn <span class="token operator">=</span> driver<span class="token punctuation">.</span>find_element<span class="token punctuation">(</span>by<span class="token operator">=</span>By<span class="token punctuation">.</span>ID<span class="token punctuation">,</span>value<span class="token operator">=</span><span class="token string">'search_input'</span><span class="token punctuation">)</span> <span class="token comment"># 向 input 输入内容</span> search_btn<span class="token punctuation">.</span>send_keys<span class="token punctuation">(</span><span class="token string">'python'</span><span class="token punctuation">)</span> sleep<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token comment"># 清空输入框</span> search_btn<span class="token punctuation">.</span>clear<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># 执行 js 代码,删除某元素</span> driver<span class="token punctuation">.</span>execute_script<span class="token punctuation">(</span><span class="token triple-quoted-string string">""" const ad = document.querySelector('.un-login-banner') ad.parentNode.removeChild(ad) """</span><span class="token punctuation">)</span> <span class="token comment"># 切换窗口 从 0 开始 -1 为最后一个</span> <span class="token comment"># driver.switch_to.window(driver.window_handles[-1])</span> <span class="token comment"># driver.switch_to.window(driver.window_handles[0])</span> <span class="token comment"># 关闭窗口</span> <span class="token comment"># driver.close()</span> <span class="token comment"># 关闭浏览器</span> <span class="token comment"># driver.quit()</span> </code></pre> <p>无头浏览器</p> <pre><code class="prism language-python"><span class="token comment"># 无头浏览器 即不打开浏览器</span> option<span class="token punctuation">.</span>add_argument<span class="token punctuation">(</span><span class="token string">"--headless"</span><span class="token punctuation">)</span> option<span class="token punctuation">.</span>add_argument<span class="token punctuation">(</span><span class="token string">"--disable-gpu"</span><span class="token punctuation">)</span> <span class="token comment"># 创建浏览器对象</span> driver <span class="token operator">=</span> webdriver<span class="token punctuation">.</span>Chrome<span class="token punctuation">(</span>options<span class="token operator">=</span>option<span class="token punctuation">)</span> </code></pre> <p>iframe</p> <pre><code class="prism language-python"> <span class="token comment"># iframe 切换到 iframe</span> <span class="token comment"># iframe = driver.find_element(by=By.ID, value='search_button')</span> <span class="token comment"># driver.switch_to.frame(iframe)</span> <span class="token comment"># 跳出 iframe</span> <span class="token comment"># driver.switch_to.parent_frame()</span> </code></pre> <pre><code class="prism language-python"><span class="token comment"># 获取页面代码 是 f12 里的代码 不是源代码</span> <span class="token comment"># driver.page_source</span> </code></pre> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1682665663644119040"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Python,python,爬虫)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1903752929509175296.htm" title="conda:一个当下最流行的Python虚拟环境工具" target="_blank">conda:一个当下最流行的Python虚拟环境工具</a> <span class="text-muted">Wang_AI</span> <div>点击上方“AI派”,选择“设为星标”最新分享,第一时间送达!作者:LeonWang,现为中科院特别研究助理(博士后),在AI、数据科学和科学计算等方面相关的工程实践上积累了丰富的经验。编辑:王老湿前面的文章中,为大家介绍过Python下的虚拟环境和包管理。在实际中,更为流行的是用Conda来管理Python环境。今天这篇文章就为大家介绍这方面的相关内容。Conda环境Conda简介Conda是目前</div> </li> <li><a href="/article/1903751412676882432.htm" title="轻松上手:Matplotlib的基本用法全知道" target="_blank">轻松上手:Matplotlib的基本用法全知道</a> <span class="text-muted">大数据方向陪跑私教</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>《轻松上手:Matplotlib的基本用法全知道》嗨,小伙伴们!之前咱们了解了好多厉害的Python包,今天咱们来好好讲讲Matplotlib这个在数据可视化方面超棒的包。**Matplotlib到底该怎么用呢?**这就像是探索一个新的游乐场,每个功能都是一样好玩的项目。一、安装Matplotlib在开始使用Matplotlib之前,得先把它安装好。如果你已经安装了Python的包管理工具pip,</div> </li> <li><a href="/article/1903750027122110464.htm" title="Python 高手编程系列一千七百零八:在事件循环中使用 executors" target="_blank">Python 高手编程系列一千七百零八:在事件循环中使用 executors</a> <span class="text-muted">杨琴1</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Executor.submit()方法返回的Future类实例在概念上非常接近异步编程中使用的协程。这就是为什么我们可以使用执行器在协同多任务和多进程或多线程之间进行混合。此解决方法的核心是事件循环类的BaseEventLoop.run_in_executor(executor,func,*args)方法。它会在进程池或线程池中调度执行由executor参数表示的func函数。这个方法最重要的是它</div> </li> <li><a href="/article/1903748766792478720.htm" title="conda将python低版本环境升级到高版本" target="_blank">conda将python低版本环境升级到高版本</a> <span class="text-muted">dkgee</span> <a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>conda将python低版本环境3.7.16升级到高版本3.81.激活你的Conda环境2.升级Python版本3.验证升级4.处理依赖问题5.测试环境注意事项可以将Conda环境中的Python版本从3.7.16升级到3.8。以下是具体步骤:1.激活你的Conda环境首先,你需要激活你想要升级Python版本的环境。假设你的环境名为myenv,你可以使用以下命令激活它:condaactivat</div> </li> <li><a href="/article/1903748010181980160.htm" title="python 爬取某乎某选全部内容" target="_blank">python 爬取某乎某选全部内容</a> <span class="text-muted">路笑笑</span> <div>在发布了python爬取知乎盐选文章内容后,没想到居然这么快就要更新新的内容了。在下午思考第一篇python爬取知乎盐选文章内容的时候,其实就把自动爬取目录内的其他内容的方法想出来了,但是本来没想这么快更新的,哈哈。不过思来想去还是发出来吧,毕竟要不哪天就忘了。fromDecryptLoginimportloginfrombs4importBeautifulSoupimportreimportba</div> </li> <li><a href="/article/1903747505758203904.htm" title="(含import)两行代码,将ppt的每一页幻灯片保存为图片。(如果你没装office,只装了WPS也可以,只不过更麻烦一些)" target="_blank">(含import)两行代码,将ppt的每一页幻灯片保存为图片。(如果你没装office,只装了WPS也可以,只不过更麻烦一些)</a> <span class="text-muted">几道之旅</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E4%BD%93%E5%8F%8A%E6%95%B0%E5%AD%97%E5%91%98%E5%B7%A5/1.htm">智能体及数字员工</a><a class="tag" taget="_blank" href="/search/powerpoint/1.htm">powerpoint</a><a class="tag" taget="_blank" href="/search/wps/1.htm">wps</a> <div>文章目录第一步:安装包第二步:写代码,运行第三步:如果你是Office,现在已经搞定了。但我是WPS,会报错:第四步:直接去包里改代码第五步:保存对包中代码的修改,重新运行咱最开头的代码第六步:成功了第一步:安装包pipinstallpython-office第二步:写代码,运行#安装库:pipinstallpython-officeimportoffice#单页转图片office.ppt.ppt</div> </li> <li><a href="/article/1903745867702136832.htm" title="Python知识分享第十四天" target="_blank">Python知识分享第十四天</a> <span class="text-muted">闵少搞AI</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>“”"1.面向对象相关概述概述面向对象是一种编程思想强调的是以对象为基础完成的各种操作它是基于面向过程的扩展Python中是同时支持面向对象和面向过程这两种编程思想的思想特点更符合人们的思考习惯把复杂的问题简单化把人们(程序员)从执行者变成了指挥者2.面向对象三大特征介绍封装继承多态封装概述封装就是隐藏对象的属性和实现细节仅对外提供公共的访问方式举例:插板电脑手机好处提高代码的安全性弊端代码量增加</div> </li> <li><a href="/article/1903745740115603456.htm" title="pythontype函数使用_Python astype(np.float)函数使用方法解析" target="_blank">pythontype函数使用_Python astype(np.float)函数使用方法解析</a> <span class="text-muted">weixin_39870238</span> <a class="tag" taget="_blank" href="/search/pythontype%E5%87%BD%E6%95%B0%E4%BD%BF%E7%94%A8/1.htm">pythontype函数使用</a> <div>Pythonastype(np.float)函数使用方法解析我的数据库如图结构我取了其中的nameagenr,做成array,只要所取数据存在str型,那么取出的数据,全部转化为str型,也就是array阵列的元素全是str,不管数据库定义的是不是int型。那么问题来了,取出的数据代入公式进行计算的时候,就会类型不符,这是就用到astype(np.float)代码如下importpymysqlim</div> </li> <li><a href="/article/1903740825343422464.htm" title="conda install 和 pip install 的区别" target="_blank">conda install 和 pip install 的区别</a> <span class="text-muted">不知江月待何人..</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>condainstall和pipinstall是两个常用的包安装命令,但它们在很多方面存在差异。1.所属管理系统不同1.1condainstallcondainstall是Anaconda和Miniconda发行版自带的包管理工具conda的安装命令。conda是一个跨平台的开源包管理系统和环境管理系统,它不仅可以管理Python包,还能管理其他语言(如R、C++等)的包。conda更侧重于数据科</div> </li> <li><a href="/article/1903740698562195456.htm" title="蓝桥杯备赛计划" target="_blank">蓝桥杯备赛计划</a> <span class="text-muted">laitywgx</span> <a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>1-2小时的蓝桥杯PythonB组冲刺日程表(持续1个月,聚焦高频考点):第一周:核心算法突破Day1(周一)学习重点:动态规划(01背包问题)学习资源:AcWing《蓝桥杯辅导课》第8讲(背包问题模板)代码模板速记:#一维01背包模板n,V=map(int,input().split())dp=[0]*(V+1)for_inrange(n):w,v=map(int,input().split()</div> </li> <li><a href="/article/1903740317501288448.htm" title="探秘知乎数据抓取神器 —— zhihu-spider" target="_blank">探秘知乎数据抓取神器 —— zhihu-spider</a> <span class="text-muted">丁慧湘Gwynne</span> <div>探秘知乎数据抓取神器——zhihu-spider项目地址:https://gitcode.com/gh_mirrors/zh/zhihu-spider在知识的海洋中畅游,每一份数据都可能成为智慧的火花。今天,我们来一起探索一个专为知乎设计的数据爬虫工具——zhihu-spider,它是由计算机科学研究生MorganZhang精心打造的开源宝藏。项目介绍zhihu-spider,正如其名,是一个针对</div> </li> <li><a href="/article/1903737292627963904.htm" title="Conda常用命令汇总(持续更新中)" target="_blank">Conda常用命令汇总(持续更新中)</a> <span class="text-muted">X-future426</span> <a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>原文章:安装和使用Miniconda来管理Python环境-CSDN博客一、Miniconda的使用Miniconda没有GUI界面,只能通过conda命令对Python环境和软件包进行管理,所以这里主要介绍一下conda的常用命令。1.Conda相关(1)查询conda版本conda--version(2)更新conda版本condaupdateconda2.环境管理(1)查询已创建的虚拟环境c</div> </li> <li><a href="/article/1903735905991061504.htm" title="Python 爬虫实战:从知乎盐选专栏,爬取优质内容付费数据" target="_blank">Python 爬虫实战:从知乎盐选专栏,爬取优质内容付费数据</a> <span class="text-muted">西攻城狮北</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98%E6%A1%88%E4%BE%8B/1.htm">实战案例</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E4%B9%8E/1.htm">知乎</a> <div>目录一、前言二、准备篇2.1确定目标2.2工具与库2.3法律与道德声明三、实战篇3.1分析知乎盐选专栏页面3.2模拟登录3.3获取文章列表3.4爬取更多文章数据3.5数据存储四、分析篇4.1数据清洗4.2热门文章分析4.3收藏数分析4.4评论数分析五、总结与展望六、注意事项一、前言知乎盐选专栏作为知乎平台上的优质内容付费板块,汇聚了众多创作者的高质量文章。了解这些文章的付费数据,如点赞数、收藏数、</div> </li> <li><a href="/article/1903735401529536512.htm" title="Python 常用函数全解析,轻松提升编码效率" target="_blank">Python 常用函数全解析,轻松提升编码效率</a> <span class="text-muted">jiajia651304</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>Python常用函数全解析,轻松提升编码效率Python常用函数全解析,轻松提升编码效率1.基础内置函数1.1`print()`与`input()`1.2`len()`、`type()`与`isinstance()`2.数学与数值处理函数2.1`abs()`、`round()`与`pow()`2.2`divmod()`与`max()/min()`3.序列与迭代相关函数3.1`range()`与`e</div> </li> <li><a href="/article/1903734519983304704.htm" title="编程内容简述!" target="_blank">编程内容简述!</a> <span class="text-muted">恶霸不委屈</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E9%9D%92%E5%B0%91%E5%B9%B4%E7%BC%96%E7%A8%8B/1.htm">青少年编程</a><a class="tag" taget="_blank" href="/search/%E6%B1%87%E7%BC%96/1.htm">汇编</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>编程是指通过计算机语言来开发软件、程序和应用的过程,通常通过编写一系列的指令,来让计算机完成特定的任务。编程可以涉及多个领域和技术,以下是一些主要的编程内容:1.编程语言编程语言是程序员与计算机进行沟通的桥梁,不同的编程语言适用于不同的任务。常见的编程语言有:Python:简单易学,适用于数据分析、人工智能、网页开发等。JavaScript:网页开发中不可或缺的语言,用于动态网页和前端开发。Jav</div> </li> <li><a href="/article/1903731493532921856.htm" title="新手如何使用 Milvus" target="_blank">新手如何使用 Milvus</a> <span class="text-muted">巴依老爷coder</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/milvus/1.htm">milvus</a><a class="tag" taget="_blank" href="/search/%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">向量数据库</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>一文带你入门Milvus:详细指南新手如何使用Milvus:详细指南一、Milvus简介主要特点应用领域二、安装Milvus安装DockerCompose基于DockerCompose安装Milvus服务端安装attu-可视化界面工具三、快速入门安装PythonSDK连接数据库方式1方式2(方式1的封装)数据库操作核心概念集合操作数据操作插入数据精准查询数据-get条件查询数据-query查询数据</div> </li> <li><a href="/article/1903731241321033728.htm" title="nginx-部署Python网站项目" target="_blank">nginx-部署Python网站项目</a> <span class="text-muted">skyQAQLinux</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>一、部署Python网站项目实验要求配置Nginx使其可以将动态访问转交给uWSGI安装Python工具及依赖1)拷贝软件到proxy主机[root@server1~]#scp-r/linux-soft/s2/wk/python/192.168.99.5:/root2)安装python依赖软件[root@proxy~]#yum-yinstallgccmakepython3python3-devel</div> </li> <li><a href="/article/1903728589107425280.htm" title="Python 3.6.8 64位独立安装程序" target="_blank">Python 3.6.8 64位独立安装程序</a> <span class="text-muted">霍娴果Myrtle</span> <div>Python3.6.864位独立安装程序【下载地址】Python3.6.864位独立安装程序Python3.6.864位独立安装程序欢迎使用Python3.6.64位版安装包!本资源专门针对需要在64位操作系统上进行Python环境搭建的用户项目地址:https://gitcode.com/open-source-toolkit/98d19欢迎使用Python3.6.64位版安装包!本资源专门针对</div> </li> <li><a href="/article/1903724681467326464.htm" title="Python 3.6.8 安装包下载" target="_blank">Python 3.6.8 安装包下载</a> <span class="text-muted">何盼思Kit</span> <div>Python3.6.8安装包下载【下载地址】Python3.6.8安装包下载Python3.6.8安装包下载本仓库提供适用于Windows操作系统的Python3.6.8安装包,支持x86和x64架构项目地址:https://gitcode.com/open-source-toolkit/d9647本仓库提供适用于Windows操作系统的Python3.6.8安装包,支持x86和x64架构。Pyt</div> </li> <li><a href="/article/1903719382631116800.htm" title="Python匿名函数Lambda,不止是省略函数名这么简单" target="_blank">Python匿名函数Lambda,不止是省略函数名这么简单</a> <span class="text-muted">橙色小博</span> <a class="tag" taget="_blank" href="/search/python%E7%9A%84%E5%AD%A6%E4%B9%A0%E4%B9%8B%E6%97%85/1.htm">python的学习之旅</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>目录1.前言2.Lambda函数的基本用法3.关于Lambda函数的应用3.1与map函数结合3.2lambda与if-else语句3.3多参数lambda3.4嵌套lambda3.5字典与lambda(也是我本人最喜欢的用法)3.6lambda其他用法4.总结:Lambda的编程哲学1.前言在Python的广阔天地里,Lambda函数宛如一颗璀璨的明珠,以其简洁优雅的姿态,为代码增添了一份独特的</div> </li> <li><a href="/article/1903717613729542144.htm" title="AtCoder备赛冲刺必刷题(C++) | 洛谷 AT_abc396_a Triple Four" target="_blank">AtCoder备赛冲刺必刷题(C++) | 洛谷 AT_abc396_a Triple Four</a> <span class="text-muted">热爱编程的通信人</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏:算法题解:C++与Python实现!附上汇总贴:算法竞赛备考冲刺必刷题(C++)|汇总【题目来源】洛谷:AT_abc396_a[ABC396A]</div> </li> <li><a href="/article/1903711045067796480.htm" title="python 捕获异常" target="_blank">python 捕获异常</a> <span class="text-muted">weixin_30730151</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>异常:由于代码的逻辑或者语法错误导致的程序中断。在学习Python的过程当中,大家一定要区分清楚异常和布尔值False布尔值的False只是一个值,通常代表的是一个条件的不成立,常用于逻辑判断比如:1num=22print(num>3)3ifnum>3:4print("num>3")异常指的是由于代码的逻辑或者语法错误导致的程序中断比如:1num=222+"2"了解了上面的逻辑之后,我们来看看大家</div> </li> <li><a href="/article/1903708014175645696.htm" title="python爬虫Redis数据库" target="_blank">python爬虫Redis数据库</a> <span class="text-muted">Æther_9</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/1.htm">Python爬虫零基础入门</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>Redis数据库Redis简介Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。redis:半持</div> </li> <li><a href="/article/1903698940050599936.htm" title="JavaScript反爬技术解析与应对" target="_blank">JavaScript反爬技术解析与应对</a> <span class="text-muted">不做超级小白</span> <a class="tag" taget="_blank" href="/search/web%E9%80%86%E5%90%91%E7%9F%A5%E8%AF%86%E7%A2%8E%E7%89%87/1.htm">web逆向知识碎片</a><a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF/1.htm">web前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>JavaScript反爬技术解析与应对前言在当今Web爬虫与数据抓取的生态环境中,网站运营方日益关注数据安全与隐私保护,因此逐步采用多种反爬技术来限制非授权访问。本文从JavaScript角度出发,深入剖析主流反爬策略的技术原理,并探讨相应的绕过方案,以期为研究者和开发者提供系统性的理解与实践指导。1.JavaScript反爬技术概述1.1右键禁用与开发者工具防护部分网站采用JavaScript拦</div> </li> <li><a href="/article/1903696042155634688.htm" title="python sympy的安装与使用" target="_blank">python sympy的安装与使用</a> <span class="text-muted">范哥来了</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>为了安装和使用sympy,您可以按照以下步骤进行操作:安装SymPy首先,您需要确保已经安装了Python。接着,可以通过pip来安装sympy。打开命令行工具(如终端或命令提示符),然后输入以下命令来安装sympy:pipinstallsympy如果您使用的是特定的Python环境,请确保激活该环境后再执行上述安装命令。使用SymPy安装完成后,您就可以在Python项目中导入并使用sympy了</div> </li> <li><a href="/article/1903692890400419840.htm" title="facefusion AI换脸软件的本地部署过程记录" target="_blank">facefusion AI换脸软件的本地部署过程记录</a> <span class="text-muted">kfrealme</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>tags:AI驾驭facefusion我的环境Win10+N卡安装步骤安装Python3.10方案手动安装Python官网下载安装包安装PythonReleasesforWindows|Python.org我的蓝奏云分享https://www.lanzoub.com/i9La81s1o5gb密码:h17b命令行安装1以管理员身份打开「命令提示符」2删除Microsoft官方源wingetsourc</div> </li> <li><a href="/article/1903692636997349376.htm" title="Python中手动实现进制转换" target="_blank">Python中手动实现进制转换</a> <span class="text-muted">棉猴</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2/1.htm">进制转换</a><a class="tag" taget="_blank" href="/search/%E5%8D%81%E8%BF%9B%E5%88%B6/1.htm">十进制</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E8%BF%9B%E5%88%B6/1.htm">二进制</a><a class="tag" taget="_blank" href="/search/%E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6/1.htm">十六进制</a><a class="tag" taget="_blank" href="/search/%E5%85%AB%E8%BF%9B%E5%88%B6/1.htm">八进制</a> <div>在《Python中进制转换》中提到可以使用bin()、oct()、int()和hex()等函数编程实现数字间的进制转换。除了编程实现进制转换外,还可以通过手动实现。1手动实现二进制数转换为十进制可以通过“填空法”手动将二进制数转换为十进制数,例如将二进制数“0b1101”转换为十进制数的方法如图1所示。“填空法”可以归纳为四个步骤:首先“画空格”,接下来“写次方”,然后“填数字”,最后“列算式”。</div> </li> <li><a href="/article/1903692384064040960.htm" title="Python中的进制转换" target="_blank">Python中的进制转换</a> <span class="text-muted">棉猴</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Python%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/1.htm">Python数据类型</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E8%BF%9B%E5%88%B6%E8%BD%AC%E5%8C%96/1.htm">进制转化</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E8%BF%9B%E5%88%B6/1.htm">二进制</a><a class="tag" taget="_blank" href="/search/%E5%85%AB%E8%BF%9B%E5%88%B6/1.htm">八进制</a><a class="tag" taget="_blank" href="/search/%E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6/1.htm">十六进制</a><a class="tag" taget="_blank" href="/search/bin/1.htm">bin</a><a class="tag" taget="_blank" href="/search/oct/1.htm">oct</a> <div>常用的进制有二进制、八进制、十进制和十六进制。1四种进制简介最常用的十进制基本原理是“逢十进一”,因此十进制包括的数字是“0-9”;同理,二进制的基本原理是“逢二进一”,包含的数字是“0-1”;八进制是“逢八进一”,包含的数字是“0-7”;十六进制是“逢十六进一”,包含的数字是“0-15”,其中用“A、B、C、D、E、F”分别表示“10-15”这五个数。2四种进制数的表示对于一个数字“11”,可能</div> </li> <li><a href="/article/1903690995237711872.htm" title="小菜鸟的Python笔记001:将Word文档中数据汇总到Excel表格" target="_blank">小菜鸟的Python笔记001:将Word文档中数据汇总到Excel表格</a> <span class="text-muted">蜉蝣2805</span> <a class="tag" taget="_blank" href="/search/%E5%B0%8F%E8%8F%9C%E9%B8%9F%E7%9A%84Python%E7%AC%94%E8%AE%B0/1.htm">小菜鸟的Python笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>将Word文档中数据汇总到Excel表格前言一、应用场景二、程序思路及准备工作思路如下:准备工作:三、程序代码1、主程序2、获取Word文档列表3、提取文档内数据4、导入到Excel表格四、遇到的问题1、错误AttributeError:word.Application.Quit2、word文档中复选框的识别总结前言我并非一个专业的程序员,只是一个普通的编程爱好者、一只小菜鸟。得益于网络上各路大神</div> </li> <li><a href="/article/1903688854498504704.htm" title="31天Python入门——第9天:再学函数" target="_blank">31天Python入门——第9天:再学函数</a> <span class="text-muted">安然无虞</span> <a class="tag" taget="_blank" href="/search/Python%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E7%A8%8B/1.htm">Python手把手教程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/pyqt/1.htm">pyqt</a> <div>你好,我是安然无虞。文章目录再学函数1.变量在函数中的作用域2.函数的参数传递.补充学习:不定长参数*args和**kwargs3.值传递和引用传递补充学习:把函数作为参数传递4.匿名函数5.python中内置的常用函数zip()map()filter()all()any()6.函数练习再学函数1.变量在函数中的作用域变量的作用域是指变量的作用范围.局部变量:在函数体或局部范围内声明的变量称为局部</div> </li> <li><a href="/article/93.htm" title="java工厂模式" target="_blank">java工厂模式</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82/1.htm">抽象工厂</a> <div>工厂模式有 1、工厂方法 2、抽象工厂方法。 下面我的实现是抽象工厂方法, 给所有具体的产品类定一个通用的接口。 package 工厂模式; /** * 航天飞行接口 * * @Description * @author FuJianyong * 2015-7-14下午02:42:05 */ public interface SpaceF</div> </li> <li><a href="/article/220.htm" title="nginx频率限制+python测试" target="_blank">nginx频率限制+python测试</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+%E9%A2%91%E7%8E%87+python/1.htm">nginx 频率 python</a> <div>       部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml 首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:</div> </li> <li><a href="/article/347.htm" title="java线程和线程池的使用" target="_blank">java线程和线程池的使用</a> <span class="text-muted">dyy_gusi</span> <a class="tag" taget="_blank" href="/search/ThreadPool/1.htm">ThreadPool</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/Runnable/1.htm">Runnable</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a> <div>java线程和线程池 一、创建多线程的方式     java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下: 1、通过实现Runnable接口方式 1 2 </div> </li> <li><a href="/article/474.htm" title="Linux" target="_blank">Linux</a> <span class="text-muted">171815164</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>ubuntu kernel http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/ 安卓sdk代理 mirrors.neusoft.edu.cn        80 输入法和jdk sudo apt-get install fcitx su</div> </li> <li><a href="/article/601.htm" title="Tomcat JDBC Connection Pool" target="_blank">Tomcat JDBC Connection Pool</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/Connection/1.htm">Connection</a> <div>       Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。        Tomcat Jdbc P</div> </li> <li><a href="/article/728.htm" title="敲代码的一点想法" target="_blank">敲代码的一点想法</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E7%AC%94/1.htm">随笔</a><a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%83%B3/1.htm">感想</a> <div>              入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然</div> </li> <li><a href="/article/855.htm" title="jvm指令集" target="_blank">jvm指令集</a> <span class="text-muted">程序员是怎么炼成的</span> <a class="tag" taget="_blank" href="/search/jvm+%E6%8C%87%E4%BB%A4%E9%9B%86/1.htm">jvm 指令集</a> <div>转自:http://blog.csdn.net/hudashi/article/details/7062675#comments       将值推送至栈顶时 const ldc  push   load指令 const系列 该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用) 0x02 &nbs</div> </li> <li><a href="/article/982.htm" title="Oracle字符集的查看查询和Oracle字符集的设置修改" target="_blank">Oracle字符集的查看查询和Oracle字符集的设置修改</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div> 本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。 一、什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货</div> </li> <li><a href="/article/1109.htm" title="png在Ie6下透明度处理方法" target="_blank">png在Ie6下透明度处理方法</a> <span class="text-muted">antonyup_2006</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/Firebug/1.htm">Firebug</a><a class="tag" taget="_blank" href="/search/IE/1.htm">IE</a> <div>由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。 我们知道PNG是图像文件存储格式,查询资</div> </li> <li><a href="/article/1236.htm" title="表查询常用命令高级查询方法(二)" target="_blank">表查询常用命令高级查询方法(二)</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5%E6%9F%A5%E8%AF%A2/1.htm">分页查询</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%BB%84%E6%9F%A5%E8%AF%A2/1.htm">分组查询</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2/1.htm">联合查询</a> <div>----------------------------------------------------分组查询 group by    having   --平均工资和最高工资   select avg(sal)平均工资,max(sal)  from emp ;  --每个部门的平均工资和最高工资</div> </li> <li><a href="/article/1363.htm" title="uploadify3.1版本参数使用详解" target="_blank">uploadify3.1版本参数使用详解</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/uploadify3.1/1.htm">uploadify3.1</a> <div>使用:     绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下}); 设置的属性: id: jQuery(this).attr('id'),//绑定的input的ID langFile: 'http://ww</div> </li> <li><a href="/article/1490.htm" title="精通Oracle10编程SQL(17)使用ORACLE系统包" target="_blank">精通Oracle10编程SQL(17)使用ORACLE系统包</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *使用ORACLE系统包 */ --1.DBMS_OUTPUT --ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用 --语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000); --DISABLE:用于禁止对过程PUT,PUT_LINE,NEW</div> </li> <li><a href="/article/1617.htm" title="【JVM一】JVM垃圾回收日志" target="_blank">【JVM一】JVM垃圾回收日志</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a> <div>将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括: -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc -XX:+PrintGC 通</div> </li> <li><a href="/article/1744.htm" title="Toast使用" target="_blank">Toast使用</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/toast/1.htm">toast</a> <div>Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。     创建Toast 两个方法创建Toast makeText(Context context, int resId, int duration)     参数:context是toast显示在</div> </li> <li><a href="/article/1871.htm" title="angular.identity" target="_blank">angular.identity</a> <span class="text-muted">boyitech</span> <a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/AngularJS+API/1.htm">AngularJS API</a> <div>angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value * to be returned. 返回值: 传入的value 实例代码: <!DOCTYPE HTML> </div> </li> <li><a href="/article/1998.htm" title="java-两整数相除,求循环节" target="_blank">java-两整数相除,求循环节</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.ArrayList; import java.util.List; public class CircleDigitsInDivision { /** * 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j) </div> </li> <li><a href="/article/2125.htm" title="Java 日期 周 年" target="_blank">Java 日期 周 年</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a> <div> /** * java日期操作(月末、周末等的日期操作) * * @author * */ public class DateUtil { /** */ /** * 取得某天相加(减)後的那一天 * * @param date * @param num * </div> </li> <li><a href="/article/2252.htm" title="[高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业" target="_blank">[高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a> <div>       不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....      以后</div> </li> <li><a href="/article/2379.htm" title="分层查询(Hierarchical Queries)" target="_blank">分层查询(Hierarchical Queries)</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E9%80%92%E5%BD%92%E6%9F%A5%E8%AF%A2/1.htm">递归查询</a><a class="tag" taget="_blank" href="/search/%E5%B1%82%E6%AC%A1%E6%9F%A5%E8%AF%A2/1.htm">层次查询</a> <div>Hierarchical Queries If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause: hierarchical_query_clause::= start with condi</div> </li> <li><a href="/article/2506.htm" title="数据迁移" target="_blank">数据迁移</a> <span class="text-muted">daysinsun</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB/1.htm">数据迁移</a> <div>最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。 1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。 2、在数据插入的时候有些字段特别长</div> </li> <li><a href="/article/2633.htm" title="C语言学习二进制的表示示例" target="_blank">C语言学习二进制的表示示例</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/basic/1.htm">basic</a> <div>进制的表示示例 # include <stdio.h> int main(void) { int i = 0x32C; printf("i = %d\n", i); /* printf的用法 %d表示以十进制输出 %x或%X表示以十六进制的输出 %o表示以八进制输出 */ return 0; } </div> </li> <li><a href="/article/2760.htm" title="NsTimer 和 UITableViewCell 之间的控制" target="_blank">NsTimer 和 UITableViewCell 之间的控制</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a> <div>情况是这样的: 一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.   解决办法: 在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画   查找cell结束显示的代理</div> </li> <li><a href="/article/2887.htm" title="MySql中case when then 的使用" target="_blank">MySql中case when then 的使用</a> <span class="text-muted">fanxiaolong</span> <a class="tag" taget="_blank" href="/search/casewhenthenend/1.htm">casewhenthenend</a> <div>select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人" union (select pp.id as "主键", pp.project_number as &</div> </li> <li><a href="/article/3014.htm" title="Ehcache(01)——简介、基本操作" target="_blank">Ehcache(01)——简介、基本操作</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%E7%AE%80%E4%BB%8B/1.htm">简介</a><a class="tag" taget="_blank" href="/search/CacheManager/1.htm">CacheManager</a><a class="tag" taget="_blank" href="/search/crud/1.htm">crud</a> <div>Ehcache简介 目录 1       CacheManager 1.1      构造方法构建 1.2      静态方法构建 2       Cache 2.1&</div> </li> <li><a href="/article/3141.htm" title="最容易懂的javascript闭包学习入门" target="_blank">最容易懂的javascript闭包学习入门</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊</div> </li> <li><a href="/article/3268.htm" title="提升网站转化率的四步优化方案" target="_blank">提升网站转化率的四步优化方案</a> <span class="text-muted">php教程分享</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a> <div>网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。 PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分</div> </li> <li><a href="/article/3395.htm" title="web开发里什么是HTML5的WebSocket?" target="_blank">web开发里什么是HTML5的WebSocket?</a> <span class="text-muted">naruto1990</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a> <div>当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服</div> </li> <li><a href="/article/3522.htm" title="Socket初步编程——简单实现群聊" target="_blank">Socket初步编程——简单实现群聊</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/1.htm">网络编程</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E6%AD%A5%E8%AE%A4%E8%AF%86/1.htm">初步认识</a> <div>初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:   服务端:(接收客户端消息并把它们打印出来)   public class SocketServer { private List<Socket> socketList = new ArrayList<Socket>(); public s</div> </li> <li><a href="/article/3649.htm" title="面试:Hashtable与HashMap的区别(结合线程)" target="_blank">面试:Hashtable与HashMap的区别(结合线程)</a> <span class="text-muted">toknowme</span> <div>昨天去了某钱公司面试,面试过程中被问道 Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。   今天就动手写了一个例子,直接看代码吧 package com.learn.lesson001; import java</div> </li> <li><a href="/article/3776.htm" title="MVC设计模式的总结" target="_blank">MVC设计模式的总结</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/IOC/1.htm">IOC</a> <div>随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越 来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。 其中‘层’是逻辑上的划分。 三层体系结构是将整个系统划分为如图2.1所示的结构[3] (1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。 该层用于向客户端用户提供GUI交互,它允许用户</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>