网页抓取数据百度百科(网络爬虫(又称为网页蜘蛛)爬虫协议的道德标准 )
优采云 发布时间: 2022-01-30 12:01网页抓取数据百度百科(网络爬虫(又称为网页蜘蛛)爬虫协议的道德标准
)
爬行动物科学
一个定义
近年来,爬虫这个词广为流传,还有一个新兴的职位——爬虫工程师。那么什么是爬行动物?
下面是百度百科的解释:
网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中更常称为网络追逐者)是根据一定规则自动从万维网上爬取信息的程序或脚本。其他不太常用的名称是 ant、autoindex、emulator 或 worm。
大概还是不明白。
其实通俗的说,就是在网络上根据自己的需要,通过相应的技术手段来获取我们需要的数据信息。这个过程称为爬行。
该网站是API。. .
我们说网络上的每一个网站都被看作是一个API,也就是一个接口,通过它我们可以获取信息和数据。一个网站叫做 URL,这个 URL 就是我们爬取的 API。
爬虫无非就是以下几个流程:
1、了解网页
2、获取网页内容
3、解析网页并选择需要的内容
4、保存你想要的
两个机器人协议
在爬取之前,你需要知道一些事情:
1、服务器上的数据是专有的。
2、网络爬虫数据牟利存在法律风险。
3、爬虫可能会丢失个人数据。
许多公司还对爬虫进行了一些预防设置。一般会判断你的访问来源,并尝试判断你是被人网站访问还是被机器访问,从而做出必要的限制。
robots协议,也称为robots.txt,是大家都认同的爬虫协议。说白了,就是爬虫的道德标准。很多公司会在它的一些网站上设置robots协议,这个协议会告诉你哪些内容网站允许你爬取,哪些内容不允许爬取。该协议是 网站 根目录中的 robots.txt 文件。京东的机器人协议如下。
首先,我将向大家解释这些的目的。也希望大家都能做一个合法的爬虫,遵守网络道德,做社会主义的接班人。不过普通的小爬虫是允许的,大家可以大胆尝试。
三爬虫框架
目前爬虫已经有比较成熟的框架和比较成熟的第三方库供大家使用。
上面给出了两个更成熟的爬虫库。下面我们简单介绍一下Requests的使用。
首先,您需要安装此库。库的安装方法很简单。在 Windows 系统上,以管理员身份运行 cmd 并执行 pip install 请求。
安装好之后就可以测试了。
爬虫的框架如下:
import requests # 导入requests库<br />def Get_Url_text(URL): # 定义获取相应链接文本的函数 try:# 这里是异常处理机制 r = requests.get(url, timeout=30) # 访问这个链接,并返回一个名为r的对象 r.raise_for_status() # 返回访问的状态,若为200,即为访问成功 r.encoding = r.apparent_encoding # 将网页的编码和头文件的编码改为一致 except: return "产生异常"<br />if __name__ = "main": url = "https://www.Baidu.com" print(Get_Url_text(url))
四个Requests库的一些常用方法
requests库的七种常用方法
这里有两个对象,一个是访问的url,一个是返回的响应对象,也就是前面代码中的r对象,其中也有返回对象的一些属性。如下表所示。
微信推文爬取图片示例
简单说一下这里使用的python自带的urllib中的request。但是整体的爬取思路是一样的。还用到了其他一些库,大家可以自行理解。代码和解释如下所示。
import urllib.requestimport re # 正则表达式库import osimport urllib<br /><br /># 根据给定的网址来获取网页详细信息,得到的html就是网页的源代码def getHtml(url): page = urllib.request.urlopen(url) html = page.read() return html.decode('UTF-8')<br /><br />def getImg(html): reg = r'data-ratio="0.75" data-s="300,640" data-src="(.+?)" data-type="jpeg"' # 括号里面就是我们要取得的图片网址 imgre = re.compile(reg) imglist = imgre.findall(html) # 表示在整个网页中过滤出所有图片的地址,放在imglist中 x = 0 path = 'D:\\python_project\\GRASP_pic_from_wechat\\pic' # 将图片保存到D:\\test文件夹中,如果没有test文件夹则创建 if not os.path.isdir(path): os.makedirs(path) paths = path + '\\' # 保存在test路径下<br /> for imgurl in imglist: urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x)) # 打开imglist中保存的图片网址,并下载图片保存在本地,format格式化字符串 x = x + 1 return imglist<br /><br />html = getHtml("https://mp.weixin.qq.com/s/z8phHxzrjeU6HCDdtQdoeQ") # 获取该网址网页详细信息,得到的html就是网页的源代码print(getImg(html)) # 从网页源代码中分析并下载保存图片