好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

山东创睦网络科技有限公司:从零开始的爬虫学习(一)

本文介绍了爬虫的环境搭建,一个简单的图片爬取例子,最后介绍两个常见的小错误, AttributeError: 'NoneType’ object has no attribute 'find “requests.exceptions.InvalidSchema: No connection adapters were found for…”

什么是爬虫? 这是一篇解释的比较容易理解的博文。

从零学习爬虫,逃不开安装环境。山东创睦网络科技有限公司:从零开始的爬虫学习(一)

完成安装环境,下一步就是安装常用的爬虫包了,这里提到主要是这两个包,request 和 BeautifulSoup (美味的汤) 这两个包是比较常见的,也比较好用。

import requestsfrom bs4 import BeautifulSoup12 这两个包都可以在Pycharm中直接下载。

File–>Setings–>Project Interpreter

点击加号,搜索添加包

这也是添加引用包的方法,当然手动添加也可以,这里就不说了。

安装环境打好后就可以开始编程了。 博主之前没有学过py,所以介绍的部分可能比较基础。 废话少说,直接上代码。

import requestsfrom bs4 import BeautifulSoupimport osimport lxmlimport random url = "https://HdhCmsTestbaidu测试数据/"r = requests.get(url)r.raise_for_status()bs = BeautifulSoup(r.text, 'lxml')image = bs.find("div", {"id": "lg"}).find("img")["src"]ir = requests.get("http:"+ image)if ir.status_code == 200: open('logo.jpg', 'wb').write(ir.content)123456789101112131415161718 本例实现的是从百度官网下载百度logo。 主要用到了 request.get 函数和 BeautifulSoup.find 函数 具体实现参照了这篇回答

简单总结一下我的理解,URL是一种网络寻址的路径,用来定位资源,和网站网址类似。 r = requests.get(url) get函数的具体结构可以参照这篇博文山东创睦网络科技有限公司:从零开始的爬虫学习(一) get函数模仿主机去点击网址的方式,给网站发送请求,并接收回应,get的返回值是网站反馈的Request对象。 r.raise_for_status()是建议反馈的Request对象是否正常的工具,具体内容可以看这篇博文山东创睦网络科技有限公司:从零开始的爬虫学习(一)

bs = BeautifulSoup(r.text, 'lxml’) image = bs.find(“div”, {“id”: “lg”}).find(“img”)[“src”] 这里讲BeautifulSoup实例化,因为是由get的返回值实例化的,调用find函数去返回的网页中找百度logo 如果报错 AttributeError: 'NoneType’ object has no attribute 'find 请检查find是否能找到具体目标src。

可以这样理解,find先去找 div类中 id=lg 的位置,在去找其中img下的src,将src给到image。

ir = requests.get(“http:”+ image) 因为 image中存放的是 //HdhCmsTestbaidu测试数据/img/bd logo1.png 我们要去访问他就需要补全网站 http://HdhCmsTestbaidu测试数据/img/bd logo1.png。 ir = requests.get(“http:”+ image) 否则访问就会报错 “requests.exceptions.InvalidSchema: No connection adapters were found for…”

open('logo.jpg’, 'wb’).write(ir.content) 最后打开logo.jpg存放图片。

到这基础爬取已经完成,下次将对具体的漫画网站进行爬取。 山东创睦网络科技有限公司:从零开始的爬虫学习(一)

查看更多关于山东创睦网络科技有限公司:从零开始的爬虫学习(一)的详细内容...

  阅读:17次