网页视频抓取工具 知乎(Python爬虫中爬虫的爬取数据处理流程及解决办法(上) )
优采云 发布时间: 2022-02-24 05:03网页视频抓取工具 知乎(Python爬虫中爬虫的爬取数据处理流程及解决办法(上)
)
需要salt,写了一个爬虫程序来爬取知乎网站的数据。关于知乎爬虫,我们从用户的角度和问题的角度进行爬取。挑选。
项目流程:爬虫代码(Python)→非结构化数据(Mongo)→结构化数据(MySQL)→结构化数据(Access)
为了应对反爬机制,我们使用Python编写爬虫来爬取IP代理池。IP代理池程序的源地址为:
数据爬取以知乎主题下的内容为爬取对象。爬虫程序通过python设计实现,将知乎问答社区的数据作为研究问题分类的数据进行爬取。这些数据的来源是由浏览器获取的。浏览器获取的其实是一系列文件,包括HTML格式部分、CSS样式部分和JavaScript执行层部分。浏览器将加载并理解这些数据,并通过渲染将其显示在图表的这一侧。因此,这些文件是由爬虫获取的。通过对这些代码文件进行分析和过滤,就可以实现对图片和文字的爬取。
程序源地址:
(1)从问题的角度,对于知乎“英语学习”和“流行音乐”两个题目下的问题,我们于2018年暑期开始爬取以下内容:
浏览器通过请求 URL 来获取资源文件。URL是一个统一的资源定位器,也称为网站,通过它可以通过特定的访问方式从互联网上查找资源的位置并获取。Internet 上的每个文件都有一个唯一的 URL,其中收录指示文件位置以及浏览器应该如何处理它的信息。Python爬虫的原理是模仿浏览器的行为,对Web服务器请求的信息和对服务器的响应进行基本的处理。本文爬虫的爬取数据处理流程如图:
网络爬虫的基本框架一般由三部分组成:网址管理模块、网页下载模块和网页解析模块。URL管理模块对要爬取的网页链接进行管理,防止重复爬取或循环指向。由于本文的数据爬取是定向的,爬虫作业基本是列表任务,所以本文爬虫程序的URL管理模块比较简单,可以直接迭代列表内容。如果动态信息请求较多,则需要对URL管理模块进行参数管理。网页下载模块是将URL对应的网页或内容下载到本地或内存中。requests 库提供了 http 的所有基本请求方法。本文爬虫程序主要通过requests模块实现信息内容的请求和下载。网页解析模块从下载的网页或内容中提取数据。由于下载的内容是 HTML 格式,因此需要的实际数据是这些标签中的文本数据。BeautifulSoup 工具是一个 python 库,可以定位数据和解析标签数据。在内容上,本文中的爬虫是通过BeautifulSoup工具和正则表达式实现的。最后,将解析后的数据保存起来,供以后处理和使用。BeautifulSoup 工具是一个 python 库,可以定位数据和解析标签数据。在内容上,本文中的爬虫是通过BeautifulSoup工具和正则表达式实现的。最后,将解析后的数据保存起来,供以后处理和使用。BeautifulSoup 工具是一个 python 库,可以定位数据和解析标签数据。在内容上,本文中的爬虫是通过BeautifulSoup工具和正则表达式实现的。最后,将解析后的数据保存起来,供以后处理和使用。
由于知乎社区的问答文本是以话题的形式组织在数据库中的,因此本文对数据的爬取是基于特定话题下的深度搜索爬取(我们爬取了英语学习和流行音乐主题)。爬取数据获取流程及数据内容如图:
在爬取过程中,程序错误状态码主要遇到以下几种情况:
200:请求成功,请求所期望的响应或数据体将与此响应一起生成。
403:服务器理解请求,但拒绝执行。(解决方法:重新登录知乎账号,更改cookie)
404:请求失败,在服务器上找不到请求的资源。(原因:网页丢失或删除)
410:请求的资源在服务器上不再可用,并且没有已知的转发地址。(原因:资源流失)
500:服务器遇到意外情况,无法完成请求的处理。一般在服务器端的源代码有错误的时候就会出现这个问题。
以上错误码中,403、410、500会导致程序中断,需要处理后重新运行。其中403表示我们的cookie过期或者因为访问太频繁被服务器拒绝了,但是我们的账号还没有被封禁,重新登录账号,更换新的cookie。410 是由于资源不可用,500 是内部服务错误,两者都是由服务器端不可知错误引起的。
(2)从用户的角度,我们将从2018年10月到11月以及2019年夏天的时间,从知乎“英语学习”这个话题下的受访者开始抓取以下内容:
运行程序的结果如下图所示: