热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

response获取响应内容_Python网络爬虫详细的网站爬取内容分析

引言:随着大数据技术的发展,分布式储存和分布式计算,数据的价值在不断的挖掘,特别对于大量的网络数据,爬取网站数

引言:随着大数据技术的发展,分布式储存和分布式计算,数据的价值在不断的挖掘,特别对于大量的网络数据,爬取网站数据内容,分析数据背后的隐藏价值,人工智能的背后就是需要海量的数据支持,这就是21世纪数据的价值所在!

5ca825733cdc981d72ae22168d86cc85.png

1、网络爬虫基本流程:

1.1、发起请求:client通过HTTP库向目标站点发起请求Request等待服务器响应。

1.2、获取响应内容:server响应Response的内容就是页面的内容,类型有HTML,Json,二进制等。

1.3、解析内容:HTML可用正则表达式、网页解析库解析。Json可用直接转化为json对象解析。二进制数据,可用进一步保存或者处理。

1.4、保存数据:结构化的存储,可用保存为文本,保存至数据库,或者保存为特定格式的文件。

4673e0db991d87b4e80a6e8e26ba6b8a.png

2、Reques与Response:

2.1、Request:

1)请求方式:主要有GET、POST两种类型,还有HEAD、PUT、DELETE、OPTIONS等。2)请求URL:URL即就是统一资源定位符,网页、图片、视频等可用URL唯一确定。

3)请求头:包含请求时的头部信息,如User-Agent、Host、COOKIEs等信息。

4)请求体:请求时额外携带的数据,如表单提交时的表单数据。

2.2、Response:

1)响应状态:响应状态,如200表示成功,301表示跳转,404表示找不到页面,502服务器错误。

2)响应头:如内容类型,内容长度,服务器信息,设置COOKIE等等。

3)响应体:最主要的部分,包含了请求的资源内容,如HTML、图片视频、二进制数据等。

832b028d652d40b8bff5810fa33f9f1b.png

3、爬虫能抓取的数据:

3.1、网页文本:HTML文档、Json格式文本等。

3.2、图片:获取到的是二进制文件,保存为图片格式。

3.3、视频:也是二进制文件,保存为视频格式即可。

3.4、其他:只要是能够请求到的数据,都能获取到信息。

078d3dcd2b0a47376390c689563d6d97.png

4、解析方式:

4.1、直接处理:适合网页简单的。

4.2、Json解析:适合网页是Json字符串的。

4.3、正则表达式:适合对HTML解析。

4.4、库解析:BeautifulSoup库、PyQuery库、XPath库等等。

313b3138ea5cea2f36faec540ce12d5f.png

5、请求的结果与浏览器看到的结果不一样:

5.1、原因:浏览器的渲染效果。Javascript与后台的交互数据。

5.2、怎样解决Javascript渲染问题:分析Ajax请求(Json字符串)。Selenium/WebDriver解决(pip可以安装)。Splash解决(在GitHub中可以搜索安装)。PyV8、Ghost.py。

dc7976804e40f4d742700049e280e80c.png

6、怎样保持数据:

6.1、文本:纯文本,Json,Xml等。

6.2、关系型数据库:如MySQL、Oracle、SQLServer等有结构化表结构化形式存储。

6.3、非关系型数据库:如MongoDB、Redis等Key-Value形式存储。

6.4、二进制文件:如图片、视频、音频等直接保存为特定格式。

013a75bef575a5a048731c427256106a.png



推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
手机用户2502886745
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有