初学者如何用 Python 写第一个爬虫?

欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。

初学者如何用 Python 写第一个爬虫?_第1张图片

博客内容包括:

  • Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。
  • 大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Flink、Kafka、Redis、ECharts、Zookeeper等相关技术。
  • 开发工具:分享常用开发工具(IDEA、Git、Mac、Alfred、Typora等)的使用技巧,提升开发效率。
  • 数据库与优化:总结MySQL及其他常用数据库技术,解决实际工作中的数据库问题。
  • Python与大数据:专注于Python编程语言的深度学习,数据分析工具(如Pandas、NumPy)和大数据处理技术,帮助您掌握数据分析、数据挖掘、机器学习等技术。
  • 数据结构与算法:总结数据结构与算法的核心知识,提升编程思维,帮助您应对大厂面试挑战。

我的目标:持续学习与总结,分享技术心得与解决方案,和您一起探索技术的无限可能!在这里,我希望能与您共同进步,互相激励,成为更好的自己。

欢迎订阅本专栏,与我一起在这个知识的海洋中不断学习、分享和成长!


版权声明:本博客所有内容均为原创,遵循CC 4.0 BY-SA协议,转载请注明出处。

目录

一、爬虫的基本概念

1. 爬虫的定义

2. 爬虫的主要工作流程

3. 常用 Python 工具

二、环境准备

1. 安装 Python

2. 安装必要库

三、写第一个简单的爬虫

1. 完整代码示例

2. 代码逐步解析

1)发送 HTTP 请求

2)检查请求状态

3)解析 HTML 数据

4)提取网页内容

5)打印结果

四、改进爬虫功能

1. 添加请求头

2. 控制爬取频率

3. 保存数据

五、应对复杂网页

1. 动态加载网页

2. 爬取图片或文件

六、爬虫的注意事项

1. 遵守法律和道德

2. 处理异常

3. 避免过于频繁的请求


网页爬虫是一种通过程序自动抓取网页数据的技术。对于初学者来说,使用 Python 写一个简单的爬虫是一个很好的入门项目。Python 提供了许多强大的工具和库,如 requestsBeautifulSoup,可以帮助快速实现网页数据的爬取。

在本文中,我们将从爬虫的基本概念开始,逐步实现一个可以抓取网页内容的简单爬虫,并探讨如何改进爬虫以应对复杂场景。我们将从以下几个方面展开:


一、爬虫的基本概念

1. 爬虫的定义

爬虫(Web Crawler)是一种自动化脚本或程序,它会模拟用户访问网页的行为,从而提取网页中的特定内容。

2. 爬虫的主要工作流程

一个典型的爬虫任务通常包括以下步骤:

  • 发送请求:通过 HTTP 协议访问目标网页,获取其 HTML 内容。

  • 解析数据:对获取到的 HTML 进行解析,提取我们需要的数据。

  • 存储数据:将提取到的数据保存到文件或数据库中,便于后续处理。

3. 常用 Python 工具
  • requests:发送 HTTP 请求,获取网页内容。

  • BeautifulSoup:解析 HTML 或 XML 数据,提取特定内容。

  • re(正则表达式):对复杂文本模式进行匹配和提取。

  • pandas:对数据进行清洗和分析。


二、环境准备

1. 安装 Python

确保你的计算机上已经安装了 Python(推荐使用 3.7 及以上版本)。如果尚未安装,可以从 Python 官方网站 下载并安装。

2. 安装必要库

打开命令行或终端,运行以下命令安装我们需要的 Python 库:

pip install requests beautifulsoup4

 

  • requests:用于发送 HTTP 请求。

  • beautifulsoup4:用于解析 HTML 数据。


三、写第一个简单的爬虫

我们来实现一个简单的爬虫,它将抓取某个网页的标题和正文内容。

1. 完整代码示例

以下代码实现了一个基本的爬虫:

import requests
from bs4 import BeautifulSoup

def simple_crawler(url):
    try:
        # 1. 发送请求
        response = requests.get(url)
        response.raise_for_status()  # 检查请求是否成功

        # 2. 解析网页内容
        soup = BeautifulSoup(response.text, 'html.parser')

        # 3. 提取标题和段落内容
        title = soup.find('title').text  # 获取网页标题
        paragraphs = soup.find_all('p')  # 获取所有段落内容

        print(f"网页标题: {title}\n")
        print("网页内容:")
        for p in paragraphs:
            print(p.text)

    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")

# 示例网址
url = "https://example.com"  # 替换为你想爬取的网页地址
simple_crawler(url)
2. 代码逐步解析
1)发送 HTTP 请求
response = requests.get(url)
  • 使用 requests.get() 方法向目标网址发送 GET 请求。

  • 返回的 response 对象包含网页的所有内容,包括 HTML 源代码。

2)检查请求状态
response.raise_for_status()
  • 通过 raise_for_status() 检查请求是否成功。如果返回的 HTTP 状态码表示错误(如 404 或 500),会抛出异常。

3)解析 HTML 数据
soup = BeautifulSoup(response.text, 'html.parser')
  • BeautifulSoup 用于解析 HTML 内容,并将其转化为 Python 对象,方便后续操作。

  • 第二个参数 'html.parser' 指定使用 Python 内置的 HTML 解析器。

4)提取网页内容
title = soup.find('title').text
paragraphs = soup.find_all('p')
  • find('title') 方法返回 </code> 标签的内容。</p> </li> <li> <p><code>find_all('p')</code> 方法返回所有段落标签 <code><p></code>,并以列表形式存储。</p> </li> </ul> <h6 id="5%EF%BC%89%E6%89%93%E5%8D%B0%E7%BB%93%E6%9E%9C">5)打印结果</h6> <pre><code class="language-python">for p in paragraphs: print(p.text)</code></pre> <ul> <li> <p>遍历提取到的段落内容,并打印每个段落的文本。</p> </li> </ul> <hr> <h4 id="%E5%9B%9B%E3%80%81%E6%94%B9%E8%BF%9B%E7%88%AC%E8%99%AB%E5%8A%9F%E8%83%BD">四、改进爬虫功能</h4> <h5 id="1.%20%E6%B7%BB%E5%8A%A0%E8%AF%B7%E6%B1%82%E5%A4%B4">1. 添加请求头</h5> <p>一些网站会检测爬虫程序并阻止访问。可以通过添加请求头来模拟浏览器访问。</p> <pre><code class="language-python">headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } response = requests.get(url, headers=headers)</code></pre> <h5 id="2.%20%E6%8E%A7%E5%88%B6%E7%88%AC%E5%8F%96%E9%A2%91%E7%8E%87">2. 控制爬取频率</h5> <p>为了避免对目标网站造成过高的负载,可以在每次请求后添加延时。</p> <pre><code class="language-python">import time def delay_request(url): response = requests.get(url) time.sleep(2) # 等待 2 秒 return response</code></pre> <h5 id="3.%20%E4%BF%9D%E5%AD%98%E6%95%B0%E6%8D%AE">3. 保存数据</h5> <p>将爬取的数据保存为文件或数据库。</p> <p><strong>保存到文件:</strong></p> <pre><code class="language-python">with open("output.txt", "w", encoding="utf-8") as f: f.write(f"标题: {title}\n") for p in paragraphs: f.write(p.text + "\n")</code></pre> <p><strong>保存到 CSV 文件:</strong></p> <pre><code class="language-python">import csv with open("output.csv", "w", newline="", encoding="utf-8") as csvfile: writer = csv.writer(csvfile) writer.writerow(["段落内容"]) for p in paragraphs: writer.writerow([p.text])</code></pre> <hr> <h4 id="%E4%BA%94%E3%80%81%E5%BA%94%E5%AF%B9%E5%A4%8D%E6%9D%82%E7%BD%91%E9%A1%B5">五、应对复杂网页</h4> <h5 id="1.%20%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD%E7%BD%91%E9%A1%B5">1. 动态加载网页</h5> <p>对于 JavaScript 渲染的网页,<code>requests</code> 无法获取完整内容,可以使用 <code>selenium</code> 或 <code>playwright</code>。</p> <p><strong>示例(使用 selenium):</strong></p> <pre><code class="language-python">from selenium import webdriver url = "https://example.com" # 配置 WebDriver driver = webdriver.Chrome() driver.get(url) # 获取动态加载的内容 html = driver.page_source print(html) # 关闭浏览器 driver.quit()</code></pre> <h5 id="2.%20%E7%88%AC%E5%8F%96%E5%9B%BE%E7%89%87%E6%88%96%E6%96%87%E4%BB%B6">2. 爬取图片或文件</h5> <pre><code class="language-python">import os # 下载图片 img_url = "https://example.com/image.jpg" response = requests.get(img_url) # 保存图片 with open("image.jpg", "wb") as f: f.write(response.content)</code></pre> <hr> <h4 id="%E5%85%AD%E3%80%81%E7%88%AC%E8%99%AB%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9">六、爬虫的注意事项</h4> <h5 id="1.%20%E9%81%B5%E5%AE%88%E6%B3%95%E5%BE%8B%E5%92%8C%E9%81%93%E5%BE%B7">1. 遵守法律和道德</h5> <ul> <li> <p><strong>避免违反法律</strong>:确保爬取行为符合目标网站的使用条款。</p> </li> <li> <p><strong>尊重 robots.txt 文件</strong>:通过 <code>robots.txt</code> 查看目标网站的爬取限制。</p> </li> </ul> <h5 id="2.%20%E5%A4%84%E7%90%86%E5%BC%82%E5%B8%B8">2. 处理异常</h5> <p>对于网络请求失败、数据缺失等情况,添加异常处理逻辑:</p> <pre><code class="language-python">try: response = requests.get(url) response.raise_for_status() except requests.exceptions.RequestException as e: print(f"请求失败: {e}")</code></pre> <h5 id="3.%20%E9%81%BF%E5%85%8D%E8%BF%87%E4%BA%8E%E9%A2%91%E7%B9%81%E7%9A%84%E8%AF%B7%E6%B1%82">3. 避免过于频繁的请求</h5> <p>可以设置延时或使用代理 IP:</p> <pre><code class="language-python">proxies = { "http": "http://123.45.67.89:8080", "https": "http://123.45.67.89:8080" } response = requests.get(url, proxies=proxies)</code></pre> <p></p> </div> </div>���������������������������� </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1879908328289660928"></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/1879948951948423168.htm" title="Python wxPython 库实现文本框与按钮交互示例" target="_blank">Python wxPython 库实现文本框与按钮交互示例</a> <span class="text-muted">燕鹏01</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>引言在Python的图形用户界面(GUI)开发中,wxPython是一个功能强大的库。今天,我们将通过一个简单的示例,详细讲解如何使用wxPython创建一个带有按钮和文本框的窗口,并实现按钮点击事件来向文本框中添加文本。代码解析导入wxPython库importwx这行代码导入了wxPython库,它是我们创建GUI应用程序的基础。创建MyFrame类classMyFrame(wx.Frame)</div> </li> <li><a href="/article/1879946798173319168.htm" title="《Python实现简易DDoS压力测试脚本:原理、代码与使用警示》" target="_blank">《Python实现简易DDoS压力测试脚本:原理、代码与使用警示》</a> <span class="text-muted">乐茵安全</span> <a class="tag" taget="_blank" href="/search/python_study/1.htm">python_study</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>DDoS测试脚本声明:本文所涉及代码仅供学习使用,任何人利用此造成的一切后果与本人无关源码import requestsimport threading# 目标URLtarget_url = "http://47.121.xxx.xxx/"# 发送请求的函数def send_request():    while True:        try:            response = re</div> </li> <li><a href="/article/1879946799544856576.htm" title="《还在为数据表难看而烦恼?Python绘制数据表能否成为你的救星?》" target="_blank">《还在为数据表难看而烦恼?Python绘制数据表能否成为你的救星?》</a> <span class="text-muted">乐茵安全</span> <a class="tag" taget="_blank" href="/search/python_study/1.htm">python_study</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>利用python绘制各种数据图表绘制柱形图-源码from openpyxl import Workbookfrom openpyxl.chart import BarChart, Reference# 创建工作薄wb = Workbook(write_only=True)# 创建工作表ws = wb.create_sheet('月收入')# 准备数据rows = [    ('月份', '销售额'</div> </li> <li><a href="/article/1879945915649814528.htm" title="python3安装教程" target="_blank">python3安装教程</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>1.下载python百度网盘下载python-3.12.3-amd64.exe链接:https://pan.baidu.com/s/1MV3kvVdjCdS_G-_KgefwLw?pwd=pgzu提取码:pgzu官网下载:WelcometoPython.org有很多版本,选择需要的版本下载2.安装python双击python-3.12.3-amd64.exeNext安装成功3.检查pythonwi</div> </li> <li><a href="/article/1879940243646377984.htm" title="【2024华为OD-E卷-100分-字符串分割】(题目+思路+Java&C++&Python解析)" target="_blank">【2024华为OD-E卷-100分-字符串分割】(题目+思路+Java&C++&Python解析)</a> <span class="text-muted">执着的小火车</span> <a class="tag" taget="_blank" href="/search/2024%E5%8D%8E%E4%B8%BAOD-E%E5%8D%B7/1.htm">2024华为OD-E卷</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><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/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>题目字符串分割给定一个字符串s和一个整数k,你需要将字符串s分割成恰好k个非空子字符串,使得这些子字符串中字典序最大的子字符串尽可能小。输入:第一行输入一个字符串s(只包含小写字母)。第二行输入一个整数k。</div> </li> <li><a href="/article/1879938095730716672.htm" title="华为OD机试E卷 - 空栈压数(Java & Python& JS & C++ & C )" target="_blank">华为OD机试E卷 - 空栈压数(Java & Python& JS & C++ & C )</a> <span class="text-muted">算法大师</span> <a class="tag" taget="_blank" href="/search/%E6%9C%80%E6%96%B0%E5%8D%8E%E4%B8%BAOD%E6%9C%BA%E8%AF%95/1.htm">最新华为OD机试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod%E6%9C%BA%E8%80%83e%E5%8D%B7/1.htm">华为od机考e卷</a> <div>最新华为OD机试真题目录:点击查看目录华为OD面试真题精选:点击立即查看题目描述向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设:栈顶至栈底整数依次编号为n1,n2,…,nx,其中n1为最新压入的整数)如果n1=n2,则n1、n2全部出栈,压入新数据m(m=2*n1)如果n1=n2+…+ny(y的范围为[3,x]),则n1,n2,…,ny全部出栈,压入新数据m(m=2*n1)。如果上述规</div> </li> <li><a href="/article/1879935191066144768.htm" title="Python的条件判断、循环和函数(超详细教学)" target="_blank">Python的条件判断、循环和函数(超详细教学)</a> <span class="text-muted">小星袁</span> <a class="tag" taget="_blank" href="/search/Python%E5%85%A5%E9%97%A8%E7%BA%A7%E8%B6%85%E8%AF%A6%E7%BB%86%E6%95%99%E5%AD%A6/1.htm">Python入门级超详细教学</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/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/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E5%BE%AA%E7%8E%AF/1.htm">循环</a><a class="tag" taget="_blank" href="/search/%E6%9D%A1%E4%BB%B6/1.htm">条件</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a> <div>目录一、条件判断1.1if语句1.2ifelse语句1.3ifelifelse语句二、循环2.1累加2.1.1for循环2.1.2while循环2.2break跳出循环2.3列表表达式2.3.1定义2.3.2举例三、函数3.1求和函数3.2匿名函数一、条件判断1.1if语句A=10ifA>0:print("A是正数!")1.2ifelse语句A=-10ifA>0:print("A是正数!")els</div> </li> <li><a href="/article/1879930159482597376.htm" title="Python进阶-在Ubuntu上部署Flask应用" target="_blank">Python进阶-在Ubuntu上部署Flask应用</a> <span class="text-muted"></span> <div>随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一。Python作为一种简单易用的编程语言,适用于开发各种应用程序。本文将详细介绍如何在Ubuntu服务器上部署Python应用,包括环境准备、应用发布、配置反向代理(Nginx)、设置系统服务以及日志管理等步骤。一、部署准备在开始之前,请确保你具备以下条件:一台运行Ubuntu(如Ubuntu20.04或22.04</div> </li> <li><a href="/article/1879929520224530432.htm" title="【华为OD-E卷 - 篮球比赛 100分(python、java、c++、js、c)】" target="_blank">【华为OD-E卷 - 篮球比赛 100分(python、java、c++、js、c)】</a> <span class="text-muted">CodeClimb</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E9%A2%98/1.htm">算法题</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%EF%BC%88A%2BB%2BC%2BD%2BE/1.htm">(A+B+C+D+E</a><a class="tag" taget="_blank" href="/search/%E5%8D%B7%EF%BC%89%E6%94%B6%E5%BD%95%E5%88%86%E4%BA%AB/1.htm">卷)收录分享</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><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/javascript/1.htm">javascript</a> <div>【华为OD-E卷-篮球比赛100分(python、java、c++、js、c)】题目篮球(5V5)比赛中,每个球员拥有一个战斗力,每个队伍的所有球员战斗力之和为该队伍的总体战斗力。现有10个球员准备分为两队进行训练赛,教练希望2个队伍的战斗力差值能够尽可能的小,以达到最佳训练效果。给出10个球员的战斗力,如果你是教练,你该如何分队,才能达到最佳训练效果?请说出该分队方案下的最小战斗力差值输入描述0</div> </li> <li><a href="/article/1879929393829179392.htm" title="【华为OD-E卷 - 敏感字段加密 100分(python、java、c++、js、c)】" target="_blank">【华为OD-E卷 - 敏感字段加密 100分(python、java、c++、js、c)】</a> <span class="text-muted">CodeClimb</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E9%A2%98/1.htm">算法题</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%EF%BC%88A%2BB%2BC%2BD%2BE/1.htm">(A+B+C+D+E</a><a class="tag" taget="_blank" href="/search/%E5%8D%B7%EF%BC%89%E6%94%B6%E5%BD%95%E5%88%86%E4%BA%AB/1.htm">卷)收录分享</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><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/javascript/1.htm">javascript</a> <div>【华为OD-E卷-敏感字段加密100分(python、java、c++、js、c)】题目给定一个由多个命令字组成的命令字符串:字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号;命令字之间以一个或多个下划线_进行分割;可以通过两个双引号””来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现;请对指定索引的敏感字段进行加密,替换为**</div> </li> <li><a href="/article/1879928007536209920.htm" title="基于JavaScript的网页设计案例分析:打造现代化、交互性强的网站体验" target="_blank">基于JavaScript的网页设计案例分析:打造现代化、交互性强的网站体验</a> <span class="text-muted">冷夜雨.</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>引言随着互联网的快速发展,网页设计的要求也在不断提升。从最初的静态页面到如今的动态、交互式网页,JavaScript作为一种重要的前端开发语言,已成为现代网页设计中不可或缺的一部分。它能够为网页带来更强的交互性、灵活性和动态效果,不仅提升用户体验,也能在设计过程中实现更复杂的功能。本文将通过一个具体的JavaScript网页设计案例,来展示如何利用JavaScript打造现代化、交互性强的网站,并</div> </li> <li><a href="/article/1879928007989194752.htm" title="Python网络爬虫入门教程:从抓取数据到应用实现" target="_blank">Python网络爬虫入门教程:从抓取数据到应用实现</a> <span class="text-muted">冷夜雨.</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>引言在大数据时代,信息就是力量。各种网站每天产生着海量的数据,这些数据中蕴藏着巨大的商业价值和研究价值。如何快速、自动化地从互联网上获取这些信息,成为了数据科学、人工智能、市场分析等领域中的一个重要课题。Python,作为一门易于学习且功能强大的编程语言,其丰富的库和工具使得构建网络爬虫变得非常简单。网络爬虫(WebScraper)是一种自动化程序,用来从网页中提取信息。无论是用于数据分析、竞争对</div> </li> <li><a href="/article/1879927880880812032.htm" title="编程语言大揭秘:各显神通的编程世界" target="_blank">编程语言大揭秘:各显神通的编程世界</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/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%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>在当今数字化的时代,编程语言犹如一把把神奇的钥匙,打开了通往不同技术领域的大门。从网页开发到人工智能,从数据分析到游戏制作,每一种编程语言都有其独特的优势与适用场景。今天,就让我们一同深入探索几种主流编程语言的奥秘,看看在什么情况下它们能发挥最大的威力。Python:万能胶水,快速开发的利器Python以其简洁、易读的语法著称,仿佛是用自然语言编写代码一般,新手程序员也能快速上手。它拥有庞大且丰富</div> </li> <li><a href="/article/1879926993886179328.htm" title="Windows中配置Python 3.11环境安装教程" target="_blank">Windows中配置Python 3.11环境安装教程</a> <span class="text-muted">Python老安</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/python3.11/1.htm">python3.11</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</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/%E7%94%B5%E8%84%91/1.htm">电脑</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a> <div>目录一、下载和安装Python3.111.1下载Python3.111.2安装Python3.11二、配置环境变量2.1检查Python是否已添加到PATH2.2手动添加Python到PATH三、验证Python和pip安装3.1验证Python安装3.2验证pip安装四、安装常用的Python包和工具4.1更新pip4.2安装虚拟环境管理工具4.2.1安装virtualenv4.2.2创建虚拟环</div> </li> <li><a href="/article/1879926619909451776.htm" title="【vLLM 学习】安装" target="_blank">【vLLM 学习】安装</a> <span class="text-muted"></span> <div>vLLM是一款专为大语言模型推理加速而设计的框架,实现了KV缓存内存几乎零浪费,解决了内存管理瓶颈问题。更多vLLM中文文档及教程可访问→https://vllm.hyper.ai/vLLM是一个Python库,包含预编译的C++和CUDA(12.1)二进制文件。依赖环境操作系统:LinuxPython:3.8-3.12GPU:计算能力7.0或更高(例如V100、T4、RTX20xx、A100、L</div> </li> <li><a href="/article/1879923717417529344.htm" title="【第四天】零基础入门刷题Python-Selenium-自动化测试-打开百度的首页搜索B站然后打开B站-切换B站窗口在B站搜索框中搜索Selenium-复习XPATH详细语法" target="_blank">【第四天】零基础入门刷题Python-Selenium-自动化测试-打开百度的首页搜索B站然后打开B站-切换B站窗口在B站搜索框中搜索Selenium-复习XPATH详细语法</a> <span class="text-muted">Long_poem</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</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/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、先复习昨天的XPATH语法,然后学习怎么切换窗口二、详细代码1.对本节代码XPath表达式的解释2.在百度的首页上搜索B站后打开B站-在B站搜索框中搜索Selenium3.对切换窗口的详细介绍4.对上方的两个模块的详细介绍总结前言提示:这里可以添加本文要记录的大概内容:第零天练习补充零基础入门刷题Python-Sele</div> </li> <li><a href="/article/1879921820950392832.htm" title="豆包 API 调用示例代码详解-Python版" target="_blank">豆包 API 调用示例代码详解-Python版</a> <span class="text-muted">道长不会写代码</span> <a class="tag" taget="_blank" href="/search/python%E5%9F%BA%E7%A1%80%E6%95%99%E5%AD%A6/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>文章目录豆包API调用示例代码详解-Python版一、事前准备二、所需Python包三、代码详解五、源码下载四、总结豆包官方API文档豆包API调用示例代码详解-Python版在本文中,我们将详细介绍如何使用Python调用豆包API,并提供相关的事前准备和代码执行步骤。一、事前准备密钥申请:要使用豆包API,首先需要申请一个授权密钥。在上述代码中,密钥存储在headers字典的Authoriza</div> </li> <li><a href="/article/1879921553664176128.htm" title="Python加密算法有哪些?有什么作用?" target="_blank">Python加密算法有哪些?有什么作用?</a> <span class="text-muted"></span> <div>Python中的常见加密算法及其应用加密算法在现代计算机科学中扮演着至关重要的角色,它们用于保护数据的机密性、完整性和验证身份。在Python中,有许多加密算法可以使用,它们各自具有不同的特点和应用场景。以下是一些常见的加密算法及其详细介绍:1.AES(AdvancedEncryptionStandard)️简介:AES是一种对称加密算法,广泛用于保护敏感数据,属于块加密算法。AES有三种密钥长度</div> </li> <li><a href="/article/1879919426908778496.htm" title="Python - random.seed初探 - 为什么固定随机种子了每次结果还不一样" target="_blank">Python - random.seed初探 - 为什么固定随机种子了每次结果还不一样</a> <span class="text-muted">Tisfy</span> <a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">实用技巧</a><a class="tag" taget="_blank" href="/search/Python/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/random/1.htm">random</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E6%9C%BA%E7%A7%8D%E5%AD%90/1.htm">随机种子</a> <div>Python-random.seed初探-为什么固定随机种子了每次结果还不一样前言和很多语言一样,python的random也能设置随机种子,设置随机种子后相同的rand调用会产生相同的结果。例如下面代码在同一版本的python下,理论上不论何时运行多少次都将得到相同的结果:importrandomrandom.seed(83)a=[random.randint(0,random.randint(</div> </li> <li><a href="/article/1879918669149040640.htm" title="python范围" target="_blank">python范围</a> <span class="text-muted">shix .</span> <a class="tag" taget="_blank" href="/search/python/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>用户图形界面-工资计算器fromtkinterimport*deff():w=int(e1.get())+int(e2.get())-int(e3.get())wage.insert(0,w)root=Tk()root.title("工资计算器")Label(root,text="每月基本工资:").pack()e1=Entry(root)e1.pack()Label(root,text="补助工</div> </li> <li><a href="/article/1879914765707440128.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/python/1.htm">python</a> <div>正则表达式正则表达式是一个特殊的字符序列,计算机科学的一个概念。通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用re模块。re模块使Python语言拥有全部的正则表达式功能。特点:灵活性、逻辑性和功能性非常强;可以迅速地用极简单的方式达到字符串的复杂控制。对于刚接触的人来说,比</div> </li> <li><a href="/article/1879913328466259968.htm" title="在 Go 中如何获取 goroutine 的 id?" target="_blank">在 Go 中如何获取 goroutine 的 id?</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AFgo%E9%9D%A2%E8%AF%95/1.htm">后端go面试</a> <div>如果你使用过如Python、Java等主流支持并发的编程语言,那么通常都能够比较容易的获得进程和线程的id。但是在Go语言,没有直接提供对多进程和多线程的支持,而是提供了goroutine来支持并发编程。不过在Go中,获取goroutine的id并不像其他编程语言那样容易,但依然有办法,本文就来介绍下如何实现。获取当前进程的id首先,虽然Go没有提供多进程编程,但启动Go程序还是会有一个进程存在的</div> </li> <li><a href="/article/1879911485820432384.htm" title="在VScode中配置Python开发环境" target="_blank">在VScode中配置Python开发环境</a> <span class="text-muted">Python_魔力猿</span> <a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>1、安装python官网下载地址:https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe双击打开.exe文件勾选AddPython3.8toPath选项,然后点击installnow即可安装。安装中:安装完毕后点击close即可。2、测试按键盘win+r,在左下角运行窗口里输入cmd,回车。在弹出的窗口里输入python,回车。</div> </li> <li><a href="/article/1879909340513628160.htm" title="用Python手撕一个批量填充数据到excel表格的工具,解放双手!" target="_blank">用Python手撕一个批量填充数据到excel表格的工具,解放双手!</a> <span class="text-muted">Python与Excel之交</span> <a class="tag" taget="_blank" href="/search/python%E8%87%AA%E5%8A%A8%E5%8C%96%E5%8A%9E%E5%85%AC/1.htm">python自动化办公</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>作者:锋小刀微信搜索【Python与Excel之交】关注我的公众号查看更多内容Hi~大家好!今天这篇文章是根据批量填充数据的进阶版。基础版本就一段很简单的代码。虽然简单,但如果这个模板或者数据发生变化,还是要改来改去的,所以本文就在基础版本上进行改进,只需要动动鼠标就可以填充大量数据到Excel工作表中。GUI界面设计GUI是用PySimpleGUI库创建的,安装命令直接用pip命令安装即可!在开</div> </li> <li><a href="/article/1879908582607089664.htm" title="[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示代码。" target="_blank">[Python数据分析]最通俗入门Kmeans聚类分析,可视化展示代码。</a> <span class="text-muted">William数据分析</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/kmeans/1.htm">kmeans</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%B1%BB/1.htm">分类</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>什么是k-means分析?【头条@William数据分析,看原版】想象一下,你有一堆五颜六色的糖果,你想把它们按照颜色分成几堆。k-means分析就是这么一个自动分类的过程。它会根据糖果的颜色特征,把它们分成若干个组,每个组里的糖果颜色都比较相似。更专业一点说,k-means分析是一种常用的聚类算法,它会将数据集中的数据点分成k个不同的簇。每个簇都有一个中心点,这个中心点就是簇中所有数据点的平均值</div> </li> <li><a href="/article/1879908583785689088.htm" title="[Python办公]Python脚本如何最小化打包成 .exe 文件" target="_blank">[Python办公]Python脚本如何最小化打包成 .exe 文件</a> <span class="text-muted">William数据分析</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>为了将这个Python程序打包成.exe文件,并尽量减小体积,我们可以使用PyInstaller,这是一个常用的工具,用于将Python脚本打包为独立的可执行文件。在打包过程中,我们需要排除不必要的包和文件,以确保打包后的.exe文件尽可能小。【直接一条命令打包成最小体积】:pyinstaller--onefile--windowed--noconsole--hidden-import=PySim</div> </li> <li><a href="/article/1879908581411713024.htm" title="[Python数据可视化] Plotly:交互式数据可视化的强大工具" target="_blank">[Python数据可视化] Plotly:交互式数据可视化的强大工具</a> <span class="text-muted">William数据分析</span> <a class="tag" taget="_blank" href="/search/python/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><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">数据可视化</a> <div>引言:在数据分析和可视化的世界中,Plotly是一颗耀眼的明星。它是一个开源的交互式图表库,支持多种编程语言,包括Python、R和JavaScript。Plotly的强大之处在于它能够创建出既美观又具有高度交互性的图表,使得数据探索和分析变得更加直观和有趣。本文将详细介绍Plotly的功能,并通过实际示例展示其在数据可视化中的应用。Plotly的优势:交互性:Plotly图表具有丰富的交互功能,</div> </li> <li><a href="/article/1879908328289660928.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%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</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/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>欢迎来到我的博客!非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。博客内容包括:Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Fli</div> </li> <li><a href="/article/1879908329174659072.htm" title="Python3.12金融库TA-Lib库安装talib库" target="_blank">Python3.12金融库TA-Lib库安装talib库</a> <span class="text-muted">William数据分析</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D/1.htm">金融</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>talib是一个Python库,全名为“TA-Lib”,代表“TechnicalAnalysisLibrary”。这是一个广泛使用的库,用于进行金融市场数据的的技术分析。它包含了多种技术指标的计算,比如移动平均线、相对强弱指数(RSI)、布林带等。安装分2步:先安装whl轮子,再安装talib库。1、安装whl轮子:网上搜talibwhl,根据自己电脑32位,64位以及python版本下载对应的w</div> </li> <li><a href="/article/1879907378762149888.htm" title="Python中的面向对象编程(OOP)" target="_blank">Python中的面向对象编程(OOP)</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>在Python编程领域中,面向对象编程(Object-OrientedProgramming,简称OOP)是一种强大而灵活的编程范式,它允许开发者以对象为中心组织代码,使得程序结构更加清晰、可维护。在本文中,我们将深入探讨Python中的面向对象编程,介绍关键概念,并通过实例演示如何利用OOP构建更健壮的应用。1.类与对象OOP的核心概念是类与对象。类是一个抽象的概念,用于描述具有相似属性和方法的</div> </li> <li><a href="/article/97.htm" title="TOMCAT在POST方法提交参数丢失问题" target="_blank">TOMCAT在POST方法提交参数丢失问题</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a> <div>摘自http://my.oschina.net/luckyi/blog/213209 昨天在解决一个BUG时发现一个奇怪的问题,一个AJAX提交数据在之前都是木有问题的,突然提交出错影响其他处理流程。 检查时发现页面处理数据较多,起初以为是提交顺序不正确修改后发现不是由此问题引起。于是删除掉一部分数据进行提交,较少数据能够提交成功。 恢复较多数据后跟踪提交FORM DATA ,发现数</div> </li> <li><a href="/article/224.htm" title="在MyEclipse中增加JSP模板 删除-2008-08-18" target="_blank">在MyEclipse中增加JSP模板 删除-2008-08-18</a> <span class="text-muted">ljy325</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/MyEclipse/1.htm">MyEclipse</a> <div>在D:\Program Files\MyEclipse 6.0\myeclipse\eclipse\plugins\com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710\templates\jsp  目录下找到Jsp.vtl,复制一份,重命名为jsp2.vtl,然后把里面的内容修改为自己想要的格式,保存。 然后在 D:\Progr</div> </li> <li><a href="/article/351.htm" title="JavaScript常用验证脚本总结" target="_blank">JavaScript常用验证脚本总结</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javaScript%E8%A1%A8%E5%8D%95%E9%AA%8C%E8%AF%81/1.htm">javaScript表单验证</a> <div>     转载请出自出处:http://eksliang.iteye.com/blog/2098985        下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...! &nb</div> </li> <li><a href="/article/478.htm" title="微软BI(4)" target="_blank">微软BI(4)</a> <span class="text-muted">18289753290</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E8%BD%AFBI+SSIS/1.htm">微软BI SSIS</a> <div>1) Q:查看ssis里面某个控件输出的结果:  A MessageBox.Show(Dts.Variables["v_lastTimestamp"].Value.ToString()); 这是我们在包里面定义的变量 2):在关联目的端表的时候如果是一对多的关系,一定要选择唯一的那个键作为关联字段。 3) Q:ssis里面如果将多个数据源的数据插入目的端一</div> </li> <li><a href="/article/605.htm" title="定时对大数据量的表进行分表对数据备份" target="_blank">定时对大数据量的表进行分表对数据备份</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E9%87%8F/1.htm">大数据量</a> <div>工作中遇到数据库中一个表的数据量比较大,属于日志表。正常情况下是不会有查询操作的,但如果不进行分表数据太多,执行一条简单sql语句要等好几分钟。。   分表工具:linux的shell + mysql自身提供的管理命令 原理:使用一个和原表数据结构一样的表,替换原表。   linux shell内容如下: =======================开始 </div> </li> <li><a href="/article/732.htm" title="本质的描述与因材施教" target="_blank">本质的描述与因材施教</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%83%B3/1.htm">感想</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E7%AC%94/1.htm">随笔</a> <div>         不管碰到什么事,我都下意识的想去探索本质,找寻一个最形象的描述方式。        我坚信,世界上对一件事物的描述和解释,肯定有一种最形象,最贴近本质,最容易让人理解        &</div> </li> <li><a href="/article/859.htm" title="很迷茫。。。" target="_blank">很迷茫。。。</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/%E9%9A%8F%E7%AC%94/1.htm">随笔</a> <div>小弟我今年研一,也是从事的咱们现在最流行的专业(计算机)。本科三流学校,为了能有个更好的跳板,进入了考研大军,非常有幸能进入研究生的行业(具体学校就不说了,怕把学校的名誉给损了)。   先说一下自身的条件,本科专业软件工程。主要学习就是软件开发,几乎和计算机没有什么区别。因为学校本身三流,也就是让老师带着学生学点东西,然后让学生毕业就行了。对专业性的东西了解的非常浅。就那学的语言来说</div> </li> <li><a href="/article/986.htm" title="23种设计模式的意图和适用范围" target="_blank">23种设计模式的意图和适用范围</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>Factory Method 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。   适用性 当一个类不知道它所必须创建的对象的类的时候。   当一个类希望由它的子类来指定它所创建的对象的时候。   当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。 Abstr</div> </li> <li><a href="/article/1113.htm" title="Java中的synchronized和volatile" target="_blank">Java中的synchronized和volatile</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/volatile/1.htm">volatile</a><a class="tag" taget="_blank" href="/search/synchronized/1.htm">synchronized</a> <div>说到Java的线程同步问题肯定要说到两个关键字synchronized和volatile。说到这两个关键字,又要说道JVM的内存模型。JVM里内存分为main memory和working memory。 Main memory是所有线程共享的,working memory则是线程的工作内存,它保存有部分main memory变量的拷贝,对这些变量的更新直接发生在working memo</div> </li> <li><a href="/article/1240.htm" title="js数组的操作和this关键字" target="_blank">js数组的操作和this关键字</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C/1.htm">数组操作</a><a class="tag" taget="_blank" href="/search/this%E5%85%B3%E9%94%AE%E5%AD%97/1.htm">this关键字</a> <div>js数组的操作;   一:数组的创建: 1、数组的创建 var array = new Array(); //创建一个数组 var array = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]</div> </li> <li><a href="/article/1367.htm" title="别人的阿里面试感悟" target="_blank">别人的阿里面试感悟</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E5%88%86%E4%BA%AB/1.htm">面试分享</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%84%9F%E6%82%9F/1.htm">工作感悟</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E9%9D%A2%E8%AF%95/1.htm">阿里面试</a> <div>原文如下:http://greemranqq.iteye.com/blog/2007170         一直做企业系统,虽然也自己一直学习技术,但是感觉还是有所欠缺,准备花几个月的时间,把互联网的东西,以及一些基础更加的深入透析,结果这次比较意外,有点突然,下面分享一下感受吧!    &nb</div> </li> <li><a href="/article/1494.htm" title="淘宝的测试框架Itest" target="_blank">淘宝的测试框架Itest</a> <span class="text-muted">Bill_chen</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a> <div>Itest测试框架是TaoBao测试部门开发的一套单元测试框架,以Junit4为核心, 集合DbUnit、Unitils等主流测试框架,应该算是比较好用的了。 近期项目中用了下,有关itest的具体使用如下: 1.在Maven中引入itest框架: <dependency>   <groupId>com.taobao.test</groupId&g</div> </li> <li><a href="/article/1621.htm" title="【Java多线程二】多路条件解决生产者消费者问题" target="_blank">【Java多线程二】多路条件解决生产者消费者问题</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a> <div>package com.tom; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.locks.Condition; import java.util.concurrent.loc</div> </li> <li><a href="/article/1748.htm" title="汉字转拼音pinyin4j" target="_blank">汉字转拼音pinyin4j</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/pinyin4j/1.htm">pinyin4j</a> <div> 以前在项目中遇到汉字转拼音的情况,于是在网上找到了pinyin4j这个工具包,非常有用,别的不说了,直接下代码:   import java.util.HashSet; import java.util.Set; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin</div> </li> <li><a href="/article/1875.htm" title="org.hibernate.TransactionException: JDBC begin failed解决方案" target="_blank">org.hibernate.TransactionException: JDBC begin failed解决方案</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%BC%82%E5%B8%B8/1.htm">数据库异常</a><a class="tag" taget="_blank" href="/search/DBCP/1.htm">DBCP</a> <div>org.hibernate.TransactionException: JDBC begin failed:     at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68)    at org.hibernate.impl.SessionImp</div> </li> <li><a href="/article/2002.htm" title="java-并查集(Disjoint-set)-将多个集合合并成没有交集的集合" target="_blank">java-并查集(Disjoint-set)-将多个集合合并成没有交集的集合</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.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.ut</div> </li> <li><a href="/article/2129.htm" title="Java PrintWriter打印乱码" target="_blank">Java PrintWriter打印乱码</a> <span class="text-muted">chenbowen00</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一个小程序读写文件,发现PrintWriter输出后文件存在乱码,解决办法主要统一输入输出流编码格式。 读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因</div> </li> <li><a href="/article/2256.htm" title="[天气与气候]极端气候环境" target="_blank">[天气与气候]极端气候环境</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%8E%AF%E5%A2%83/1.htm">环境</a> <div>       如果空间环境出现异变...外星文明并未出现,而只是用某种气象武器对地球的气候系统进行攻击,并挑唆地球国家间的战争,经过一段时间的准备...最大限度的削弱地球文明的整体力量,然后再进行入侵......      那么地球上的国家应该做什么样的防备工作呢?  &n</div> </li> <li><a href="/article/2383.htm" title="oracle order by与union一起使用的用法" target="_blank">oracle order by与union一起使用的用法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/UNION/1.htm">UNION</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/order+by/1.htm">order by</a> <div>当使用union操作时,排序语句必须放在最后面才正确,如下: 只能在union的最后一个子查询中使用order by,而这个order by是针对整个unioning后的结果集的。So: 如果unoin的几个子查询列名不同,如 Sql代码  select supplier_id, supplier_name  from suppliers  UNI</div> </li> <li><a href="/article/2510.htm" title="zeus持久层读写分离单元测试" target="_blank">zeus持久层读写分离单元测试</a> <span class="text-muted">deng520159</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>本文是zeus读写分离单元测试,距离分库分表,只有一步了.上代码: 1.ZeusMasterSlaveTest.java package com.dengliang.zeus.webdemo.test; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.j</div> </li> <li><a href="/article/2637.htm" title="Yii 截取字符串(UTF-8) 使用组件" target="_blank">Yii 截取字符串(UTF-8) 使用组件</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>1.将Helper.php放进protected\components文件夹下。 2.调用方法:   Helper::truncate_utf8_string($content,20,false);   //不显示省略号  Helper::truncate_utf8_string($content,20);  //显示省略号  &n</div> </li> <li><a href="/article/2764.htm" title="安装memcache及php扩展" target="_blank">安装memcache及php扩展</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>安装memcache    tar zxvf memcache-2.2.5.tgz     cd memcache-2.2.5/     /usr/local/php/bin/phpize (?)    ./configure --with-php-confi</div> </li> <li><a href="/article/2891.htm" title="JsonObject 处理日期" target="_blank">JsonObject 处理日期</a> <span class="text-muted">feifeilinlin521</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/JsonOjbect/1.htm">JsonOjbect</a><a class="tag" taget="_blank" href="/search/JsonArray/1.htm">JsonArray</a><a class="tag" taget="_blank" href="/search/JSONException/1.htm">JSONException</a> <div>    写这边文章的初衷就是遇到了json在转换日期格式出现了异常 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException  原因是当你用Map接收数据库返回了java.sql.Date 日期的数据进行json转换出的问题话不多说  直接上代码  &n</div> </li> <li><a href="/article/3018.htm" title="Ehcache(06)——监听器" target="_blank">Ehcache(06)——监听器</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/%E7%9B%91%E5%90%AC%E5%99%A8/1.htm">监听器</a><a class="tag" taget="_blank" href="/search/listener/1.htm">listener</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a> <div>监听器          Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。  </div> </li> <li><a href="/article/3145.htm" title="activiti 自带设计器中chrome 34版本不能打开bug的解决" target="_blank">activiti 自带设计器中chrome 34版本不能打开bug的解决</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/Activiti/1.htm">Activiti</a> <div>  在acitivti modeler中,如果是chrome 34,则不能打开该设计器,其他浏览器可以, 经证实为bug,参考 http://forums.activiti.org/content/activiti-modeler-doesnt-work-chrome-v34 修改为,找到 oryx.debug.js 在最头部增加 if (!Document.</div> </li> <li><a href="/article/3272.htm" title="微信收货地址共享接口-终极解决" target="_blank">微信收货地址共享接口-终极解决</a> <span class="text-muted">laotu5i0</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%BC%80%E5%8F%91/1.htm">微信开发</a> <div>   最近要接入微信的收货地址共享接口,总是不成功,折腾了好几天,实在没办法网上搜到的帖子也是骂声一片。我把我碰到并解决问题的过程分享出来,希望能给微信的接口文档起到一个辅助作用,让后面进来的开发者能快速的接入,而不需要像我们一样苦逼的浪费好几天,甚至一周的青春。各种羞辱、谩骂的话就不说了,本人还算文明。    如果你能搜到本贴,说明你已经碰到了各种 ed</div> </li> <li><a href="/article/3399.htm" title="关于人才" target="_blank">关于人才</a> <span class="text-muted">netkiller.github.com</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%8B%9B%E8%81%98/1.htm">招聘</a><a class="tag" taget="_blank" href="/search/netkiller/1.htm">netkiller</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E6%89%8D/1.htm">人才</a> <div>关于人才 每个月我都会接到许多猎头的电话,有些猎头比较专业,但绝大多数在我看来与猎头二字还是有很大差距的。 与猎头接触多了,自然也了解了他们的工作,包括操作手法,总体上国内的猎头行业还处在初级阶段。 总结就是“盲目推荐,以量取胜”。 目前现状 许多从事人力资源工作的人,根本不懂得怎么找人才。处在人才找不到企业,企业找不到人才的尴尬处境。 企业招聘,通常是需要用人的部门提出招聘条件,由人</div> </li> <li><a href="/article/3526.htm" title="搭建 CentOS 6 服务器 - 目录" target="_blank">搭建 CentOS 6 服务器 - 目录</a> <span class="text-muted">rensanning</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>(1) 安装CentOS ISO(desktop/minimal)、Cloud(AWS/阿里云)、Virtualization(VMWare、VirtualBox) 详细内容 (2) Linux常用命令 cd、ls、rm、chmod...... 详细内容 (3) 初始环境设置 用户管理、网络设置、安全设置...... 详细内容 (4) 常驻服务Daemon</div> </li> <li><a href="/article/3653.htm" title="【求助】mongoDB无法更新主键" target="_blank">【求助】mongoDB无法更新主键</a> <span class="text-muted">toknowme</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>  Query query = new Query();          query.addCriteria(new Criteria("_id").is(o.getId()));                &n</div> </li> <li><a href="/article/3780.htm" title="jquery 页面滚动到底部自动加载插件集合" target="_blank">jquery 页面滚动到底部自动加载插件集合</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容。下面为你推荐 10 个 jQuery 的无限滚动的插件: 1. jQuery ScrollPagination jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件。 2. jQuery Screw S</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>