在 python中有很多用于网页采集的函数,本文主要介绍最常用的 python的抓取网页函数,即 prototype。
1、使用 prototype这个函数之前需要明确一下,不是所有的网页都支持这个函数,有的网站会限制该函数。
2、 python中的 prototype有两种类型,一个是静态类型的,一个是动态类型的。动态类型可以直接使用 object. exe,静态类型则需要先加载后才能使用。
3、 python中有很多种获取数据的方式,每种方式都有对应的函数,因此我们需要明确哪些函数支持这些方式。
4、 python中支持 web数据采集的函数有很多,常用的就是以下这些:
5、我们知道 python中有很多 python包可以使用,但不同的包功能可能不一样,所以需要明确不同包中都支持哪些功能。
6、最后需要了解一下 prototype这个函数的参数设置:
7、 prototype中有很多参数需要自己去设置,这里不一一说明。
一、获取网页 url
URL就是网页地址,在网页中 URL通常是以列表的形式出现,一般用于静态页面的采集。
python中可以直接使用 requests这个函数获取 URL,也可以通过pyhtml-request-python来获取 URL。不过pyhtml-request-python获取 URL的方法是有限制的,具体如下:
1、获取到 url后,需要对其进行解析,并将解析出来的 url存储到内存中。
这个函数的语法如下:
该函数主要有两个参数: url和 requests,其中 url是一个数字,代表了 URL地址, requests则是一个对象。由于 prototype是一个静态类型的函数,所以需要先加载才能使用,否则无法运行。
二、获取网页信息
获取网页信息,在 python中有很多函数可以实现,但在我们抓取页面信息时,有时可能需要获取一些数字、字母等信息,下面是一个简单的例子:
以上代码中的两个函数分别实现了获取页面内容和获取数字、字母等信息。其中第二个函数需要设置一个参数,这个参数会决定第二个函数要获取什么样的内容。默认为0表示只获取网页中的文字信息,默认为1表示只获取网页中的数字和字母信息,默认为2表示同时获取这两种信息。不过这两个函数并不能直接执行,需要在第三步中去设置。
通过上述例子可以看出,在抓取网页内容时,我们可以在第三步中去设置参数,即在 python中把find_text这个参数设置为1。这样当我们需要获取网页的数字、字母等信息时,就可以使用该函数来实现。下面就是使用该函数的具体代码:
三、获取内容文件
获取内容文件的过程类似于获取网页内容,通过 HTML文件来获取,其函数是request_write_type ()。下面是一个简单的例子。
首先我们在页面中创建一个对象,这个对象的名字叫 sitemap,当我们使用request_write_ty
pe ()获取数据时,会将这个对象转换成内容文件的形式。要注意的是,这里的内容文件是指 HTML文件,不是指 json之类的文本文件。
当我们在页面中创建一个对象之后,接下来我们要做的就是获取这个对象所包含的内容文件了,首先需要创建一个 object对象,然后在 object对象中使用 sitemap获取数据即可。
四、获取图片文件
获取图片文件的函数有很多,比如jpeg-png、 gif等,在获取图片时,我们只需要使用 object. exe这个函数即可,具体的代码如下:
注意: object. exe这个函数和jpeg-png、 gif等一样,需要加载后才能使用。
上面的代码中获取到的图片文件是。jpeg-png,下面再用这个函数来获取。 gif文件:
注意:在获取文件时,只需要使用 object. exe这个函数即可。如果想要获取更多的图片文件,可以使用 findimages函数:
在上面的代码中,我们获取了。jpeg-png、 gif等文件,现在需要将它们保存为一个文件。fin
dimages函数有两种方式来实现保存文件:
1、通过 exec ()函数来实现,具体的代码如下:
五、获取空的字符串
以上介绍了五种获取 web数据的方式,下面介绍如何通过 prototype获取空的字符串。
上面的代码是从一个网页中获取所有字符串,这里只需要获取空的字符串,如图:
下面从两个方面介绍如何利用 prototype从一个网页中获取空的字符串:
1、在抓取的过程中,我们会不断地刷新页面,从而导致网页内容在不断地发生变化,因此需要记录下每个页面发生变化的时间。如果每一次刷新都会记录下时间,那么就可以通过时间来判断该页面是否是最新的。
2、通过设置变量max_timestamp来实现,当网页中所有元素发生变化时,会把这些变化记录下来。
3、使用 concat来获取网页上各个元素的数据。concat是一个线程安全的函数,它可以保证变量在所有线程中不被修改。
4、通过 concat获取空字符串,如图:
六、获取特定元素
抓取网页时,可能会获取到不同的元素,那么在不同元素上获取数据时,我们又该如何处理呢?
我们需要在网页上获取不同的元素,那么就需要在每个元素上获取一个数据。下面是获取单个元素的常用方法:
代码如下:
通过这个函数可以获取多个元素,如图所示:
函数prototype这里需要注意的是,在一个页面中有多个不同的元素时,我们还可以使用 if (x)函数来判断哪个元素是特定的,这个方法在一些网站中可能会禁止使用。
我们通过上面的例子可以看到,函数会根据不同元素上是否有标签来判断是否有特定的元素,如果没有标签的话,函数会返回0;如果标签有的话,函数会返回1。这种方式能避免不同的网页获取相同的元素时可能出现错误。
七、获取 HTML页面
前面说到,获取 HTML页面时用到了 prototype这个函数,也就是获取 HTML数据。我们先来看一下获取 HTML页面的常用方法:
1、需要将 HTML文件上传到服务器上,这是获取网页数据的第一步。
2、由于现在网站很多都要求用户填写一个表单,我们需要将这些表单信息上传到服务器上,所以需要先获取这些表单信息。
3、然后在服务器上使用 python中的 prototype函数获取网页上的数据。比如下面这段代码:
4、通过这种方式可以获得一个 HTML页面的所有页面信息,但无法获取每个页面中的内容,所以需要把这些页面全部下载下来:
5、最后在这些页面中进行数据的采集,即把每个页面中的内容提取出来:
6、从上面的代码可以看出, python中用来获取网页数据的函数有很多,其中主要用到了 prototype这个函数,但有些网站并不支持该函数,因此需要设置相关参数。下面是一些常见的网页数据采集函数介绍:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论