精华内容
下载资源
问答
  • 常见网页错误代码大全

    千次阅读 2015-07-22 09:16:21
     五个类别的响应状态代码的第一个数字是唯一代表。400 无法解析此请求。 401.1 未经授权:访问由于凭据无效被拒绝。 401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。 401.3 未经授权:...

    HTTP状态码是五个不同的类别:
      1XX临时/信息响应
      2XX成功
      3XX重定向
      4XX客户端/请求错误
      5XX服务器错误
      五个类别的响应状态代码的第一个数字是唯一代表。

    400 无法解析此请求。
    401.1 未经授权:访问由于凭据无效被拒绝。
    401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。
    401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
    401.4 未经授权:Web 服务器上安装的筛选器授权失败。
    401.5 未经授权:ISAPI/CGI 应用程序授权失败。
    401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。
    403 禁止访问:访问被拒绝。
    403.1 禁止访问:执行访问被拒绝。
    403.2 禁止访问:读取访问被拒绝。
    403.3 禁止访问:写入访问被拒绝。
    403.4 禁止访问:需要使用 SSL 查看该资源。
    403.5 禁止访问:需要使用 SSL 128 查看该资源。
    403.6 禁止访问:客户端的 IP 地址被拒绝。
    403.7 禁止访问:需要 SSL 客户端证书。
    403.8 禁止访问:客户端的 DNS 名称被拒绝。
    403.9 禁止访问:太多客户端试图连接到 Web 服务器。
    403.10 禁止访问:Web 服务器配置为拒绝执行访问。
    403.11 禁止访问:密码已更改。
    403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。
    403.13 禁止访问:客户端证书已在 Web 服务器上吊销。
    403.14 禁止访问:在 Web 服务器上已拒绝目录列表。
    403.15 禁止访问:Web 服务器已超过客户端访问许可证限制。
    403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任。
    403.17 禁止访问:客户端证书已经到期或者尚未生效。
    403.18 禁止访问:无法在当前应用程序池中执行请求的 URL。
    403.19 禁止访问:无法在该应用程序池中为客户端执行 CGI。
    403.20 禁止访问:Passport 登录失败。
    404 找不到文件或目录。
    404.1 文件或目录未找到:网站无法在所请求的端口访问。
    注意 404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特定 IP 地址/端口组合上收到客户端请求,而且没有将 IP 地址配置为在该特定的端口上侦听,则 IIS 返回 404.1 HTTP 错误。例如,如果一台计算机有两个 IP 地址,而只将其中一个 IP 地址配置为在端口 80 上侦听,则另一个 IP 地址从端口 80 收到的任何请求都将导致 IIS 返回 404.1 错误。只应在此服务级别设置该错误,因为只有当服务器上使用多个 IP 地址时才会将它返回给客户端。

    404.2 文件或目录无法找到:锁定策略禁止该请求。
    404.3 文件或目录无法找到:MIME 映射策略禁止该请求。
    405 用于访问该页的 HTTP 动作未被许可。
    406 客户端浏览器不接受所请求页面的 MIME 类型。
    407 Web 服务器需要初始的代理验证。
    410 文件已删除。
    412 客户端设置的前提条件在 Web 服务器上评估时失败。
    414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。
    500 服务器内部错误。
    500.11 服务器错误:Web 服务器上的应用程序正在关闭。
    500.12 服务器错误:Web 服务器上的应用程序正在重新启动。
    500.13 服务器错误:Web 服务器太忙。
    500.14 服务器错误:服务器上的无效应用程序配置。
    500.15 服务器错误:不允许直接请求 GLOBAL.ASA。
    500.16 服务器错误:UNC 授权凭据不正确。
    500.17 服务器错误:URL 授权存储无法找到。
    500.18 服务器错误:URL 授权存储无法打开。
    500.19 服务器错误:该文件的数据在配置数据库中配置不正确。
    500.20 服务器错误:URL 授权域无法找到。
    500 100 内部服务器错误:ASP 错误。
    501 标题值指定的配置没有执行。
    502 Web 服务器作为网关或代理服务器时收到无效的响应。

    展开全文
  • HTTP 错误 400400 请求出错由于语法格式有误,服务器无法理解此请求...HTTP 错误 401401.1 未授权:登录失败此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。请与 Web 服务器的管理员联系,以确认您是...

    转载:http://blog.csdn.net/yanchao315/article/details/76686827

    HTTP 错误 400 
    400 请求出错 
    由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 
    HTTP 错误 401 
    401.1 未授权:登录失败 
    此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。 
    请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 
    401.2 未授权:服务器的配置导致登录失败 
    此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。此错误通常由未发送正确的 WWW 验证表头字段所致。 
    请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 
    401.3 未授权:由于资源中的 ACL 而未授权 
    此错误表明客户所传输的证书没有对服务器中特定资源的访问权限。此资源可能是客户机中的地址行所列出的网页或文件,也可能是处理客户机中的地址行所列出的文件所需服务器上的其他文件。 
    请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。 
    401.4 未授权:授权服务被筛选程序拒绝 
    此错误表明 Web 服务器已经安装了筛选程序,用以验证连接到服务器的用户。此筛选程序拒绝连接到此服务器的真品证书的访问。 
    请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。 
    401.5 未授权:ISAPI/CGI 应用程序的授权失败 
    此错误表明试图使用的 Web服务器中的地址已经安装了 ISAPI 或 CGI程序,在继续之前用以验证用户的证书。此程序拒绝用来连接到服务器的真品证书的访问。 
    请记录试图访问的完整地址,并与 Web服务器的管理员联系以确认您是否具有访问所请求资源的权限 
    HTTP 错误 403 
    403.1 禁止:禁止执行访问 
    如果从并不允许执行程序的目录中执行 CGI、ISAPI或其他执行程序就可能引起此错误。 
    如果问题依然存在,请与 Web 服务器的管理员联系。 
    403.2 禁止:禁止读取访问 
    如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的HTML 页时就会导致此错误。 
    如果问题依然存在,请与 Web 服务器的管理员联系。 
    403.3 禁止:禁止写访问 
    如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。 
    如果问题依然存在,请与 Web服务器的管理员联系。 
    403.4 禁止:需要 SSL 
    此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入https:// 以启用 SSL。 
    如果问题依然存在,请与 Web服务器的管理员联系。 
    403.5 禁止:需要 SSL 128 
    此错误消息表明您试图访问的资源受 128位的安全套接字层(SSL)保护。要查看此资源,需要有支持此SSL 层的浏览器。 
    请确认浏览器是否支持 128 位 SSL安全性。如果支持,就与 Web服务器的管理员联系,并报告问题。 
    403.6 禁止:拒绝 IP 地址 
    如果服务器含有不允许访问此站点的 IP地址列表,并且您正使用的 IP地址在此列表中,就会导致此问题。 
    如果问题依然存在,请与 Web服务器的管理员联系。 
    403.7 禁止:需要用户证书 
    当试图访问的资源要求浏览器具有服务器可识别的用户安全套接字层(SSL)证书时就会导致此问题。可用来验证您是否为此资源的合法用户。 
    请与 Web服务器的管理员联系以获取有效的用户证书。 
    403.8 禁止:禁止站点访问 
    如果 Web服务器不为请求提供服务,或您没有连接到此站点的权限时,就会导致此问题。 
    请与 Web 服务器的管理员联系。 
    403.9 禁止访问:所连接的用户太多 
    如果 Web太忙并且由于流量过大而无法处理您的请求时就会导致此问题。请稍后再次连接。 
    如果问题依然存在,请与 Web 服务器的管理员联系。 
    403.10 禁止访问:配置无效 
    此时 Web 服务器的配置存在问题。 
    如果问题依然存在,请与 Web服务器的管理员联系。 
    403.11 禁止访问:密码已更改 
    在身份验证的过程中如果用户输入错误的密码,就会导致此错误。请刷新网页并重试。 
    如果问题依然存在,请与 Web服务器的管理员联系。 
    403.12 禁止访问:映射程序拒绝访问 
    拒绝用户证书试图访问此 Web 站点。 
    请与站点管理员联系以建立用户证书权限。如果必要,也可以更改用户证书并重试。 
    HTTP 错误 404 
    404 找不到 
    Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。 
    如果问题依然存在,请与服务器的管理员联系。 
    HTTP 错误 405 
    405 不允许此方法 
    对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。 
    如果问题依然存在,请与服务器的管理员联系。 
    HTTP 错误 406 
    406 不可接受 
    根据此请求中所发送的“接受”标题,此请求所标识的资源只能生成内容特征为“不可接受”的响应实体。 
    如果问题依然存在,请与服务器的管理员联系。 
    HTTP 错误 407 
    407 需要代理身份验证 
    在可为此请求提供服务之前,您必须验证此代理服务器。请登录到代理服务器,然后重试。 
    如果问题依然存在,请与 Web 服务器的管理员联系。 
    HTTP 错误 412 
    412 前提条件失败 
    在服务器上测试前提条件时,部分请求标题字段中所给定的前提条件估计为FALSE。客户机将前提条件放置在当前资源 metainformation(标题字段数据)中,以防止所请求的方法被误用到其他资源。 
    如果问题依然存在,请与 Web 服务器的管理员联系。 
    HTTP 错误 414 
    414 Request-URI 太长 
    Request-URL太长,服务器拒绝服务此请求。仅在下列条件下才有可能发生此条件: 
    客户机错误地将 POST 请求转换为具有较长的查询信息的 GET 请求。 
    客户机遇到了重定向问题(例如,指向自身的后缀的重定向前缀)。 
    服务器正遭受试图利用某些服务器(将固定长度的缓冲区用于读取或执行 Request-URI)中的安全性漏洞的客户干扰。 
    如果问题依然存在,请与 Web 服务器的管理员联系。 
    HTTP 错误 500 
    500 服务器的内部错误 
    Web 服务器不能执行此请求。请稍后重试此请求。 
    如果问题依然存在,请与 Web服务器的管理员联系。 
    HTTP 错误 501 
    501 未实现 
    Web 服务器不支持实现此请求所需的功能。请检查URL 中的错误,如果问题依然存在,请与 Web服务器的管理员联系。 
    HTTP 错误 502 
    502 网关出错 
    当用作网关或代理时,服务器将从试图实现此请求时所访问的upstream 服务器中接收无效的响应。 
    如果问题依然存在,请与 Web服务器的管理员联系。

     

     

    常见的 HTTP 状态代码及其原因
    • 200 - 成功。 此状态代码表示 IIS 已成功处理请求。
    • 304 - 未修改。客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。
    • 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。
    • 401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。例如,如果 IUSR 帐户无权访问 C:WinntSystem32Inetsrv 目录,您会看到这个错误。 有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    187506 INFO: IIS 4.0 的基础 NTFS 权限
    • 403.1 - 执行访问被禁止。 下面是导致此错误信息的两个常见原因: • 您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。
    • 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。

    • 403.2 - 读访问被禁止。验证是否已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    247677 错误信息:403.2 Forbidden:Read Access Forbidden(403.2 禁止访问:读访问被禁止)
    • 403.3 - 写访问被禁止。 验证 IIS 权限和 NTFS 权限是否已设置以便向该目录授予写访问权。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    248072 错误信息:403.3 Forbidden:Write Access Forbidden(403.3 禁止访问:写访问被禁止)
    • 403.4 - 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该页面。如果没有安装证书的 Web 站点出现此错误,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    224389 错误信息:HTTP 错误 403、403.4、403.5 禁止访问:要求 SSL
    • 403.5 - 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。如果没有安装证书的 Web 站点出现此错误,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    224389 错误信息:HTTP 错误 403、403.4、403.5 禁止访问:要求 SSL
    • 403.6 - IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    248043 错误信息:403.6 - Forbidden:IP Address Rejected(403.6 - 不可用:IP 地址被拒绝)
    • 403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。有关其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    190004 错误 403.7 或“Connection to Server Could Not Be Established”(无法建立与服务器的连接)
    186812 PRB:错误信息:403.7 Forbidden:Client Certificate Required(403.7 禁止访问:要求客户端证书)
    • 403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。有关如何解决此问题的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:
    248032 错误信息:Forbidden:Site Access Denied 403.8(禁止访问:站点访问被拒绝 403.8)
    • 403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。有关如何更改此限制的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    248074 错误信息:Access Forbidden:Too Many Users Are Connected 403.9(禁止访问:连接的用户太多 403.9)
    注意:Microsoft Windows 2000 Professional 和 Microsoft Windows XP Professional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。
    • 403.12 - 拒绝访问映射表。 您要访问的页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    248075 错误信息:HTTP 403.12 - Access Forbidden:Mapper Denied Access(HTTP 403.12 - 禁止访问:映射表拒绝访问)
    • 404 - 未找到。 发生此错误的原因是您试图访问的文件已被移走或删除。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。
    • 500 - 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。 有关如何禁用友好 HTTP 错误信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    294807 如何在服务器端禁用 Internet Explorer 5 的“显示友好 HTTP 错误信息”功能
    • 500.12 - 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    248013 错误信息:HTTP Error 500-12 Application Restarting(HTTP 错误 500-12 应用程序正在重新启动)
    • 500-100.ASP - ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。有关如何在非默认的 Web 站点上看到此错误信息的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    261200 显示 HTTP 500 错误信息,而不显示 500-100.asp 的 ASP 错误信息
    • 502 - 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。

    FTP
    1xx - 肯定的初步答复

    这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。 • 110 重新启动标记答复。
    • 120 服务已就绪,在 nnn 分钟后开始。
    • 125 数据连接已打开,正在开始传输。
    • 150 文件状态正常,准备打开数据连接。
    2xx - 肯定的完成答复

    一项操作已经成功完成。客户端可以执行新命令。 • 200 命令确定。
    • 202 未执行命令,站点上的命令过多。
    • 211 系统状态,或系统帮助答复。
    • 212 目录状态。
    • 213 文件状态。
    • 214 帮助消息。
    • 215 NAME 系统类型,其中,NAME 是 Assigned Numbers 文档中所列的正式系统名称。
    • 220 服务就绪,可以执行新用户的请求。
    • 221 服务关闭控制连接。如果适当,请注销。
    • 225 数据连接打开,没有进行中的传输。
    • 226 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。
    • 227 进入被动模式 (h1,h2,h3,h4,p1,p2)。
    • 230 用户已登录,继续进行。
    • 250 请求的文件操作正确,已完成。
    • 257 已创建“PATHNAME”。
    3xx - 肯定的中间答复

    该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。 • 331 用户名正确,需要密码。
    • 332 需要登录帐户。
    • 350 请求的文件操作正在等待进一步的信息。
    4xx - 瞬态否定的完成答复

    该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。 • 421 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。
    • 425 无法打开数据连接。
    • 426 Connection closed; transfer aborted.
    • 450 未执行请求的文件操作。文件不可用(例如,文件繁忙)。
    • 451 请求的操作异常终止:正在处理本地错误。
    • 452 未执行请求的操作。系统存储空间不够。
    5xx - 永久性否定的完成答复

    该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。 • 500 语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。
    • 501 在参数中有语法错误。
    • 502 未执行命令。
    • 503 错误的命令序列。
    • 504 未执行该参数的命令。
    • 530 未登录。
    • 532 存储文件需要帐户。
    • 550 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。
    • 551 请求的操作异常终止:未知的页面类型。
    • 552 请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。
    • 553 未执行请求的操作。不允许的文件名。

    常见的 FTP 状态代码及其原因
    • 150 - FTP 使用两个端口:21 用于发送命令,20 用于发送数据。状态代码 150 表示服务器准备在端口 20 上打开新连接,发送一些数据。
    • 226 - 命令在端口 20 上打开数据连接以执行操作,如传输文件。该操作成功完成,数据连接已关闭。
    • 230 - 客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。
    • 331 - 客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。
    • 426 - 命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。
    • 530 - 该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。
    • 550 - 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。

    转载于:https://www.cnblogs.com/weimingxin/p/7991646.html

    展开全文
  • 常见错误代码有哪些

    2020-12-09 19:56:07
    生活中在浏览网页时,经常能够看到404这个页面,那么除了这种错误代码,其实还有很多,小编又给大家列举了一些: 1、401.1 :登录失败  此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。 请与 Web ...

    在这里插入图片描述
    生活中在浏览网页时,经常能够看到404这个页面,那么除了这种错误代码,其实还有很多,小编又给大家列举了一些:
    1、401.1 :登录失败 
    此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。 请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 
    2、401.2 :服务器的配置导致登录失败 
    此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。此错误通常由未发送正确的 WWW 验证表头字段所致。 请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 
    3、401.3 :由于ACL对资源的限制而未获得授权 
    此错误表明客户所传输的证书没有对服务器中特定资源的访问权限。此资源可能是客户机中的地址行所列出的网页或文件,也可能是处理客户机中的地址行所列出的文件所需服务器上的其他文件。 请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。
    4、403:禁止访问
    可能是因为你未在对方网站注册,在一般情况下,可以在网上进行即时注册,但一些完全"封闭"的网站都会产生以上的信息。
    5、404:未找到
    最常见的怪信息,其实这是因为你的WWW浏览器不能找到你所要求的文件(即网页),该文件可能被移到别的地方去了,或根本就不存在。
    6、500 :内部服务器错误
    这个信息通常是对方网页程序设计错误而产生的,你等待对方网页纠正错误后再上吧。
    7、503 :服务不可用
    这个信息等于不能接上对方网站,是因为网络线路非常繁忙。过一会儿(比如一分钟)再试试吧。
    文章部分内容源于网络,联系侵删*

    展开全文
  • 手把手教你利用爬虫爬网页(Python代码

    万次阅读 多人点赞 2019-05-14 14:34:48
    但是我们一般不采用这种方式,而是使用ProxyHandler在程序中动态设置代理,示例代码如下: import  urllib2 proxy = urllib2.ProxyHandler({ 'http' :  '127.0.0.1:8087' }) opener = urllib2.build_opener(...

    640?wx_fmt=jpeg

    本文主要分为两个部分:一部分是网络爬虫的概述,帮助大家详细了解网络爬虫;另一部分是HTTP请求的Python实现,帮助大家了解Python中实现HTTP请求的各种方式,以便具备编写HTTP网络程序的能力。


    01

    网络爬虫概述


    接下来从网络爬虫的概念、用处与价值和结构等三个方面,让大家对网络爬虫有一个基本的了解。

    1. 网络爬虫及其应用

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战,网络爬虫应运而生。网络爬虫(又被称为网页蜘蛛、网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。下面通过图3-1展示一下网络爬虫在互联网中起到的作用:


    640?wx_fmt=png

    ▲图3-1 网络爬虫


    网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

    搜索引擎(Search Engine),例如传统的通用搜索引擎baidu、Yahoo和Google等,是一种大型复杂的网络爬虫,属于通用性网络爬虫的范畴。但是通用性搜索引擎存在着一定的局限性:

    1. 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。

    2. 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。

    3. 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。

    4. 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。

    为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。

    聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择地访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

    说完了聚焦爬虫,接下来再说一下增量式网络爬虫。增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。

    和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。

    例如:想获取赶集网的招聘信息,以前爬取过的数据没有必要重复爬取,只需要获取更新的招聘数据,这时候就要用到增量式爬虫。

    最后说一下深层网络爬虫。Web页面按存在方式可以分为表层网页和深层网页。表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的Web页面。深层网络是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的Web页面。

    例如用户登录或者注册才能访问的页面。可以想象这样一个场景:爬取贴吧或者论坛中的数据,必须在用户登录后,有权限的情况下才能获取完整的数据。

    2. 网络爬虫结构

    下面用一个通用的网络爬虫结构来说明网络爬虫的基本工作流程,如图3-4所示。


    640?wx_fmt=png

    ▲图3-4 网络爬虫结构

    网络爬虫的基本工作流程如下:

    1. 首先选取一部分精心挑选的种子URL。

    2. 将这些URL放入待抓取URL队列。

    3. 从待抓取URL队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。

    4. 分析已抓取URL队列中的URL,从已下载的网页数据中分析出其他URL,并和已抓取的URL进行比较去重,最后将去重过的URL放入待抓取URL队列,从而进入下一个循环。

    02

    HTTP请求的Python实现


    通过上面的网络爬虫结构,我们可以看到读取URL、下载网页是每一个爬虫必备而且关键的功能,这就需要和HTTP请求打交道。接下来讲解Python中实现HTTP请求的三种方式:urllib2/urllib、httplib/urllib以及Requests。

    1. urllib2/urllib实现

    urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅。

    1.1 首先实现一个完整的请求与响应模型

    urllib2提供一个基础函数urlopen,通过向指定的URL发出请求来获取数据。最简单的形式是:

    
     

    import urllib2
    response=urllib2.urlopen('http://www.zhihu.com')
    html=response.read()
    print html

    其实可以将上面对http://www.zhihu.com的请求响应分为两步,一步是请求,一步是响应,形式如下:

    
     

    import urllib2
    # 请求
    request=urllib2.Request('http://www.zhihu.com')
    # 响应
    response = urllib2.urlopen(request)
    html=response.read()
    print html

    上面这两种形式都是GET请求,接下来演示一下POST请求,其实大同小异,只是增加了请求数据,这时候用到了urllib。示例如下:

    
     

    import urllib
    import urllib2
    url = 'http://www.xxxxxx.com/login'
    postdata = {'username' : 'qiye',
        'password' : 'qiye_pass'}
    # info 需要被编码为urllib2能理解的格式,这里用到的是urllib
    data = urllib.urlencode(postdata)
    req = urllib2.Request(url, data)
    response = urllib2.urlopen(req)
    html = response.read()

    但是有时会出现这种情况:即使POST请求的数据是对的,但是服务器拒绝你的访问。这是为什么呢?问题出在请求中的头信息,服务器会检验请求头,来判断是否是来自浏览器的访问,这也是反爬虫的常用手段。

    1.2 请求头headers处理

    将上面的例子改写一下,加上请求头信息,设置一下请求头中的User-Agent域和Referer域信息。

    
     

    import urllib
    import urllib2
    url = 'http://www.xxxxxx.com/login'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    referer='http://www.xxxxxx.com/'
    postdata = {'username' : 'qiye',
        'password' : 'qiye_pass'}
    # 将user_agent,referer写入头信息
    headers={'User-Agent':user_agent,'Referer':referer}
    data = urllib.urlencode(postdata)
    req = urllib2.Request(url, data,headers)
    response = urllib2.urlopen(req)
    html = response.read()

    也可以这样写,使用add_header来添加请求头信息,修改如下:

    
     

    import urllib
    import urllib2
    url = 'http://www.xxxxxx.com/login'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    referer='http://www.xxxxxx.com/'
    postdata = {'username' : 'qiye',
        'password' : 'qiye_pass'}
    data = urllib.urlencode(postdata)
    req = urllib2.Request(url)
    # 将user_agent,referer写入头信息
    req.add_header('User-Agent',user_agent)
    req.add_header('Referer',referer)
    req.add_data(data)
    response = urllib2.urlopen(req)
    html = response.read()

    对有些header要特别留意,服务器会针对这些header做检查,例如:

    • User-Agent:有些服务器或Proxy会通过该值来判断是否是浏览器发出的请求。

    • Content-Type:在使用REST接口时,服务器会检查该值,用来确定HTTP Body中的内容该怎样解析。在使用服务器提供的RESTful或SOAP服务时,Content-Type设置错误会导致服务器拒绝服务。常见的取值有:application/xml(在XML RPC,如RESTful/SOAP调用时使用)、application/json(在JSON RPC调用时使用)、application/x-www-form-urlencoded(浏览器提交Web表单时使用)。

    • Referer:服务器有时候会检查防盗链。

    1.3 Cookie处理

    urllib2对Cookie的处理也是自动的,使用CookieJar函数进行Cookie的管理。如果需要得到某个Cookie项的值,可以这么做:

    
     

    import urllib2
    import cookielib
    cookie = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    response = opener.open('http://www.zhihu.com')
    for item in cookie:
        print item.name+':'+item.value

    但是有时候会遇到这种情况,我们不想让urllib2自动处理,我们想自己添加Cookie的内容,可以通过设置请求头中的Cookie域来做:

    
     

    import  urllib2
    opener = urllib2.build_opener()
    opener.addheaders.append( ( 'Cookie''email=' + "xxxxxxx@163.com" ) )
    req = urllib2.Request( "http://www.zhihu.com/" )
    response = opener.open(req)
    print response.headers
    retdata = response.read()

    1.4 Timeout设置超时

    在Python2.6之前的版本,urllib2的API并没有暴露Timeout的设置,要设置Timeout值,只能更改Socket的全局Timeout值。示例如下:

    
     

    import urllib2
    import socket
    socket.setdefaulttimeout(10# 10 秒钟后超时
    urllib2.socket.setdefaulttimeout(10# 另一种方式

    在Python2.6及新的版本中,urlopen函数提供了对Timeout的设置,示例如下:

    
     

    import urllib2
    request=urllib2.Request('http://www.zhihu.com')
    response = urllib2.urlopen(request,timeout=2)
    html=response.read()
    print html

    1.5 获取HTTP响应码

    对于200 OK来说,只要使用urlopen返回的response对象的getcode()方法就可以得到HTTP的返回码。但对其他返回码来说,urlopen会抛出异常。这时候,就要检查异常对象的code属性了,示例如下:

    
     

    import urllib2
    try:
        response = urllib2.urlopen('http://www.google.com')
        print response
    except urllib2.HTTPError as e:
        if hasattr(e, 'code'):
            print 'Error code:',e.code

    1.6 重定向

    urllib2默认情况下会针对HTTP 3XX返回码自动进行重定向动作。要检测是否发生了重定向动作,只要检查一下Response的URL和Request的URL是否一致就可以了,示例如下:

    
     

    import urllib2
    response = urllib2.urlopen('http://www.zhihu.cn')
    isRedirected = response.geturl() == 'http://www.zhihu.cn'

    如果不想自动重定向,可以自定义HTTPRedirectHandler类,示例如下:

    
     

    import urllib2
    class RedirectHandler(urllib2.HTTPRedirectHandler):
        def http_error_301(self, req, fp, code, msg, headers):
            pass
        def http_error_302(self, req, fp, code, msg, headers):
            result = urllib2.HTTPRedirectHandler.http_error_301(self, req, fp, code, 
            msg, headers)
            result.status = code
            result.newurl = result.geturl()
            return result
    opener = urllib2.build_opener(RedirectHandler)
    opener.open('http://www.zhihu.cn')

    1.7 Proxy的设置

    在做爬虫开发中,必不可少地会用到代理。urllib2默认会使用环境变量http_proxy来设置HTTP Proxy。但是我们一般不采用这种方式,而是使用ProxyHandler在程序中动态设置代理,示例代码如下:

    
     

    import urllib2
    proxy = urllib2.ProxyHandler({'http''127.0.0.1:8087'})
    opener = urllib2.build_opener([proxy,])
    urllib2.install_opener(opener)
    response = urllib2.urlopen('http://www.zhihu.com/')
    print response.read()

    这里要注意的一个细节,使用urllib2.install_opener()会设置urllib2的全局opener,之后所有的HTTP访问都会使用这个代理。这样使用会很方便,但不能做更细粒度的控制,比如想在程序中使用两个不同的Proxy设置,这种场景在爬虫中很常见。比较好的做法是不使用install_opener去更改全局的设置,而只是直接调用opener的open方法代替全局的urlopen方法,修改如下:

    
     

    import urllib2
    proxy = urllib2.ProxyHandler({'http''127.0.0.1:8087'})
    opener = urllib2.build_opener(proxy,)
    response = opener.open("http://www.zhihu.com/")
    print response.read()


    2. httplib/urllib实现

    httplib模块是一个底层基础模块,可以看到建立HTTP请求的每一步,但是实现的功能比较少,正常情况下比较少用到。在Python爬虫开发中基本上用不到,所以在此只是进行一下知识普及。下面介绍一下常用的对象和函数:


    • 创建HTTPConnection对象:

      class httplib.HTTPConnection(host[, port[, strict[, timeout[, source_address]]]])。

    • 发送请求:

      HTTPConnection.request(method, url[, body[, headers]])。

    • 获得响应:

      HTTPConnection.getresponse()。

    • 读取响应信息:

      HTTPResponse.read([amt])。

    • 获得指定头信息:

      HTTPResponse.getheader(name[, default])。

    • 获得响应头(header, value)元组的列表:

      HTTPResponse.getheaders()。

    • 获得底层socket文件描述符:

      HTTPResponse.fileno()。

    • 获得头内容:

      HTTPResponse.msg。

    • 获得头http版本:

      HTTPResponse.version。

    • 获得返回状态码:

      HTTPResponse.status。

    • 获得返回说明:

      HTTPResponse.reason。

    接下来演示一下GET请求和POST请求的发送,首先是GET请求的示例,如下所示:

    
     

    import httplib
    conn =None
    try:
        conn = httplib.HTTPConnection("www.zhihu.com")
        conn.request("GET""/")
        response = conn.getresponse()
        print response.status, response.reason
        print '-' * 40
        headers = response.getheaders()
        for h in headers:
            print h
        print '-' * 40
        print response.msg
    except Exception,e:
        print e
    finally:
        if conn:
            conn.close()

    POST请求的示例如下:

    
     

    import httplib, urllib
    conn = None
    try:
        params = urllib.urlencode({'name''qiye''age'22})
        headers = {"Content-type""application/x-www-form-urlencoded"
        , "Accept""text/plain"}
        conn = httplib.HTTPConnection("www.zhihu.com"80, timeout=3)
        conn.request("POST""/login", params, headers)
        response = conn.getresponse()
        print response.getheaders() # 获取头信息
        print response.status
        print response.read()
    except Exception, e:
        print e
        finally:
        if conn:
            conn.close()

    3. 更人性化的Requests

    Python中Requests实现HTTP请求的方式,是本人极力推荐的,也是在Python爬虫开发中最为常用的方式。Requests实现HTTP请求非常简单,操作更加人性化。

    Requests库是第三方模块,需要额外进行安装。Requests是一个开源库,源码位于:

    GitHub: https://github.com/kennethreitz/requests

    希望大家多多支持作者。

    使用Requests库需要先进行安装,一般有两种安装方式:

    • 使用pip进行安装,安装命令为:pip install requests,不过可能不是最新版。

    • 直接到GitHub上下载Requests的源代码,下载链接为:

      https://github.com/kennethreitz/requests/releases

      将源代码压缩包进行解压,然后进入解压后的文件夹,运行setup.py文件即可。

    如何验证Requests模块安装是否成功呢?在Python的shell中输入import requests,如果不报错,则是安装成功。如图3-5所示。

    640?wx_fmt=png

    ▲图3-5 验证Requests安装

    3.1 首先还是实现一个完整的请求与响应模型

    以GET请求为例,最简单的形式如下:

    
     

    import requests
    r = requests.get('http://www.baidu.com')
    print r.content

    大家可以看到比urllib2实现方式的代码量少。接下来演示一下POST请求,同样是非常简短,更加具有Python风格。示例如下:

    
     

    import requests
    postdata={'key':'value'}
    r = requests.post('http://www.xxxxxx.com/login',data=postdata)
    print r.content

    HTTP中的其他请求方式也可以用Requests来实现,示例如下:

    
     

    r = requests.put('http://www.xxxxxx.com/put', data = {'key':'value'})
    r = requests.delete('http://www.xxxxxx.com/delete')
    r = requests.head('http://www.xxxxxx.com/get')
    r = requests.options('http://www.xxxxxx.com/get')

    接着讲解一下稍微复杂的方式,大家肯定见过类似这样的URL:

    http://zzk.cnblogs.com/s/blogpost?Keywords=blog:qiyeboy&pageindex=1

    就是在网址后面紧跟着“?”,“?”后面还有参数。那么这样的GET请求该如何发送呢?肯定有人会说,直接将完整的URL带入即可,不过Requests还提供了其他方式,示例如下:

    
     

    import requests
        payload = {'Keywords''blog:qiyeboy','pageindex':1}
    r = requests.get('http://zzk.cnblogs.com/s/blogpost', params=payload)
    print r.url

    通过打印结果,我们看到最终的URL变成了:

    http://zzk.cnblogs.com/s/blogpost?Keywords=blog:qiyeboy&pageindex=1

    3.2 响应与编码

    还是从代码入手,示例如下:

    
     

    import requests
    r = requests.get('http://www.baidu.com')
    print 'content-->'+r.content
    print 'text-->'+r.text
    print 'encoding-->'+r.encoding
    r.encoding='utf-8'
    print 'new text-->'+r.text

    其中r.content返回的是字节形式,r.text返回的是文本形式,r.encoding返回的是根据HTTP头猜测的网页编码格式。

    输出结果中:“text-->”之后的内容在控制台看到的是乱码,“encoding-->”之后的内容是ISO-8859-1(实际上的编码格式是UTF-8),由于Requests猜测编码错误,导致解析文本出现了乱码。Requests提供了解决方案,可以自行设置编码格式,r.encoding='utf-8'设置成UTF-8之后,“new text-->”的内容就不会出现乱码。

    但是这种手动的方式略显笨拙,下面提供一种更加简便的方式:chardet,这是一个非常优秀的字符串/文件编码检测模块。安装方式如下:

    
     

    pip install chardet

    安装完成后,使用chardet.detect()返回字典,其中confidence是检测精确度,encoding是编码形式。示例如下:

    
     

    import requests
    r = requests.get('http://www.baidu.com')
    print chardet.detect(r.content)
    r.encoding = chardet.detect(r.content)['encoding']
    print r.text

    直接将chardet探测到的编码,赋给r.encoding实现解码,r.text输出就不会有乱码了。

    除了上面那种直接获取全部响应的方式,还有一种流模式,示例如下:

    
     

    import requests
    r = requests.get('http://www.baidu.com',stream=True)
    print r.raw.read(10)

    设置stream=True标志位,使响应以字节流方式进行读取,r.raw.read函数指定读取的字节数。

    3.3 请求头headers处理

    Requests对headers的处理和urllib2非常相似,在Requests的get函数中添加headers参数即可。示例如下:

    
     

    import requests
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers={'User-Agent':user_agent}
    r = requests.get('http://www.baidu.com',headers=headers)
    print r.content

    3.4 响应码code和响应头headers处理

    获取响应码是使用Requests中的status_code字段,获取响应头使用Requests中的headers字段。示例如下:

    
     

    import requests
    r = requests.get('http://www.baidu.com')
    if r.status_code == requests.codes.ok:
        print r.status_code# 响应码
        print r.headers# 响应头
        print r.headers.get('content-type')# 推荐使用这种获取方式,获取其中的某个字段
        print r.headers['content-type']# 不推荐使用这种获取方式
    else:
        r.raise_for_status()

    上述程序中,r.headers包含所有的响应头信息,可以通过get函数获取其中的某一个字段,也可以通过字典引用的方式获取字典值,但是不推荐,因为如果字段中没有这个字段,第二种方式会抛出异常,第一种方式会返回None。

    r.raise_for_status()是用来主动地产生一个异常,当响应码是4XX或5XX时,raise_for_status()函数会抛出异常,而响应码为200时,raise_for_status()函数返回None。

    3.5 Cookie处理

    如果响应中包含Cookie的值,可以如下方式获取Cookie字段的值,示例如下:

    
     

    import requests
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers={'User-Agent':user_agent}
    r = requests.get('http://www.baidu.com',headers=headers)
    # 遍历出所有的cookie字段的值
    for cookie in r.cookies.keys():
        print cookie+':'+r.cookies.get(cookie)

    如果想自定义Cookie值发送出去,可以使用以下方式,示例如下:

    
     

    import requests
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers={'User-Agent':user_agent}
    cookies = dict(name='qiye',age='10')
    r = requests.get('http://www.baidu.com',headers=headers,cookies=cookies)
    print r.text

    还有一种更加高级,且能自动处理Cookie的方式,有时候我们不需要关心Cookie值是多少,只是希望每次访问的时候,程序自动把Cookie的值带上,像浏览器一样。Requests提供了一个session的概念,在连续访问网页,处理登录跳转时特别方便,不需要关注具体细节。使用方法示例如下:

    
     

    import Requests
    oginUrl = 'http://www.xxxxxxx.com/login'
    s = requests.Session()
    #首先访问登录界面,作为游客,服务器会先分配一个cookie
    r = s.get(loginUrl,allow_redirects=True)
    datas={'name':'qiye','passwd':'qiye'}
    #向登录链接发送post请求,验证成功,游客权限转为会员权限
    r = s.post(loginUrl, data=datas,allow_redirects= True)
    print r.text

    上面的这段程序,其实是正式做Python开发中遇到的问题,如果没有第一步访问登录的页面,而是直接向登录链接发送Post请求,系统会把你当做非法用户,因为访问登录界面时会分配一个Cookie,需要将这个Cookie在发送Post请求时带上,这种使用Session函数处理Cookie的方式之后会很常用。

    3.6 重定向与历史信息

    处理重定向只是需要设置一下allow_redirects字段即可,例如:

    r=requests.get('http://www.baidu.com',allow_redirects=True)

    将allow_redirects设置为True,则是允许重定向;设置为False,则是禁止重定向。如果是允许重定向,可以通过r.history字段查看历史信息,即访问成功之前的所有请求跳转信息。示例如下:

    
     

    import requests
    r = requests.get('http://github.com')
    print r.url
    print r.status_code
    print r.history

    打印结果如下:

    
     

    https://github.com/
    200
    (<Response [301]>,)

    上面的示例代码显示的效果是访问GitHub网址时,会将所有的HTTP请求全部重定向为HTTPS。

    3.7 超时设置

    超时选项是通过参数timeout来进行设置的,示例如下:

    
     

    requests.get('http://github.com', timeout=2)

    3.8 代理设置

    使用代理Proxy,你可以为任意请求方法通过设置proxies参数来配置单个请求:

    
     

    import requests
    proxies = {
        "http""http://0.10.1.10:3128",
        "https""http://10.10.1.10:1080",
    }
    requests.get("http://example.org", proxies=proxies)

    也可以通过环境变量HTTP_PROXY和HTTPS_PROXY?来配置代理,但是在爬虫开发中不常用。你的代理需要使用HTTP Basic Auth,可以使用http://user:password@host/语法:

    
     

    proxies = {
        "http""http://user:pass@10.10.1.10:3128/",
    }


    03

    小结


    本文主要讲解了网络爬虫的结构和应用,以及Python实现HTTP请求的几种方法。希望大家对本文中的网络爬虫工作流程和Requests实现HTTP请求的方式重点吸收消化。

    本文摘编自《Python爬虫开发与项目实战》,经出版方授权发布。

    关于作者:范传辉,资深网虫,Python开发者,参与开发了多项网络应用,在实际开发中积累了丰富的实战经验,并善于总结,贡献了多篇技术文章广受好评。研究兴趣是网络安全、爬虫技术、数据分析、驱动开发等技术。

    640?wx_fmt=jpeg

    Python爬虫开发与项目实战

    扫码购买

    640?wx_fmt=png


    本书特色:

    • 由浅入深,从Python和Web前端基础开始讲起,逐步加深难度,层层递进。

    • 内容详实,从静态网站到动态网站,从单机爬虫到分布式爬虫,既包含基础知识点,又讲解了关键问题和难点分析,方便读者完成进阶。

    • 实用性强,本书共有9个爬虫项目,以系统的实战项目为驱动,由浅及深地讲解爬虫开发中所需的知识和技能。

    • 难点详析,对js加密的分析、反爬虫措施的突破、去重方案的设计、分布式爬虫的开发进行了细致的讲解。

    扫码购买

    640?wx_fmt=png

    展开全文
  • 主要介绍了微信公众号H5之微信分享常见错误和问题(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java...
  • http常见错误代码

    千次阅读 2014-04-18 17:10:08
    HTTP 500.100 - 内部服务器错误 - ASP 错误 HTTP 500-11 服务器关闭 HTTP 500-12 应用程序重新启动 HTTP 500-13 - 服务器太忙 HTTP 500-14 - 应用程序无效 HTTP 500-15 - 不允许请求 global.asa ...
  • java WEB常见错误代码

    千次阅读 2018-09-23 21:03:43
    java WEB常见错误代码 1xx-信息提示: 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。 100-继续。 101-切换协议。 2xx-成功: 这类状态代码表明服务器成功地接受了客户端...
  • 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 二、2xx(成功) 表示...
  • HTTP常见错误代码说明

    千次阅读 2018-09-18 23:27:42
    一些常见的状态码为: 200 - 请求成功 204 - 处理成功但无返回内容 206 - 返回了部分内容 301 - 永久重定向 302 - 临时重定向 400 - 语法错误 401 - 未身份验证 403 - 服务器拒绝访问 404 - 请求的网页不...
  • 常见HTTP错误代码大全

    千次阅读 2018-01-26 00:48:36
    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码代码 说明 100 (继续) ...
  • 常见http错误代码及含义!!

    千次阅读 2018-09-18 20:19:49
    总结了一下http常见错误代码: 1、400 -- 无法解析此请求。 2、403 -- 禁止访问:访问被拒绝。 3、404 -- 找不到文件或目录。 4、405 -- 用于访问该页的HTTP动作未被许可。 5、410 -- 文件已删除。 6、...
  • HTTP常见错误返回代码

    千次阅读 2019-01-09 11:27:29
    4×× 客户端错误,请求错误,这些状态码表示请求可能出错,妨碍了服务器的处理。 5×× 服务器错误 具体如下: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码。 100(继续) ...
  • 一不要使用section作为div的替代品 人们在标签使用中最常见到的错误之一就是随意将HTML5的等价于具体地说就是直接用作替代品(用于样式)在XHTML或者HTML4中我们常看到这样的代码个人收集整理 勿做商业用途 !--?...
  • HTTP常见错误代码列表汇总及解决方案  常见的HTTP错误可以分为以下四大类。每一大类又细分为很多类小错误。分别是: 1、401类错误 最常见的出错提示:401 UNAUTHORIZED 这表示你必须有一个正确的用户名称...
  • WEB常见的HTTP错误代码404 500等

    千次阅读 2019-02-25 15:14:06
    我们在浏览网页时经常会看到一些错误代码,那这些代码是什么意思呢?这也是关于网络知识方面的很常见的面试题。 一、HTTP状态码 用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS...
  • 常见网页错误编码以及解决的方法
  • 常见网页错误

    千次阅读 2018-02-05 10:36:45
    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码代码 说明 100 (继续) ...
  • 网页错误代码数字报错合集

    千次阅读 2018-01-02 15:35:37
    这些具体的错误代码在浏览器中显示,但不在IIS日志中显示: 这些状态代码表示请求可能出错,妨碍了服务器的处理。 401.1-登录失败。 401.2-服务器配置导致登录失败。 401.3-由于ACL对资源的限制而未获得...
  • 服务器一些常见错误代码信息

    千次阅读 2017-07-04 17:12:06
    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码代码 说明 100 (继续) ...
  • 网页常见的报错代码

    万次阅读 2019-02-02 20:55:45
    在调试TomCat,等web服务器的时候我们有时候各种错误代码铺面而来,让人头疼不已,那么这些代码究竟都代表什么呢?知道这些代码会会对我们的调试帮助很大 让我们来看一下这些代码究竟什么意思 400 无法解析此请求。 &...
  • 浏览器常见HTTP错误代码

    千次阅读 2015-09-28 22:35:20
    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码代码 说明 100 (继续) 请求者应当继续...
  • 常见错误

    千次阅读 2021-03-19 13:55:35
    error code(错误代码)=0是操作成功完成。 error code(错误代码)=1是功能错误。 error code(错误代码)=2是系统找不到指定的文件。 error code(错误代码)=3是系统找不到指定的路径。 error code(错误代码...
  • 此次请求返回的网页未修改,继续使用上次的资源 305 使用代理 请求者应该使用代理访问该网页 307 临时重定向 请求资源临时从其他位置相应 400 错误请求 服务器无法解析该请求 ...
  • 网站常见错误代码解释

    千次阅读 2015-04-28 19:31:02
    404错误提示---找不到文件或者目录不存在 403错误提示--找不到默认首页 505错误提示--服务器内部错误 1xx-信息提示  这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 104,798
精华内容 41,919
关键字:

网页常见错误代码