《工信版(中职)Python编程基础与应用电子课件网络爬虫库的应用.pptx》由会员分享,可在线阅读,更多相关《工信版(中职)Python编程基础与应用电子课件网络爬虫库的应用.pptx(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、YCF(中职)Python编程基础与应用电子课件网络爬虫库的应用网络爬虫库的应用主讲:Python编程基础与应用配套课件Python编程基础与应用配套课件编程基础与应用配套课件contents目录1.requests的安装和简介2.Beautifulsoup4的安装和简介3.SQLite数据库的使用4.案例:新闻网页爬虫项目Python编程基础与应用配套课件编程基础与应用配套课件requests的安装和简介的安装和简介01Python编程基础与应用配套课件编程基础与应用配套课件requests的简介requests库是一个常用的用于http请求的模块,它使用python语言编写,可以方便地对网
2、页进行爬取,是学习python爬虫的较好的http请求模块。requests库支持非常丰富的链接访问功能,包括域名和URL的获取、HTTP长连接和连接缓存、HTTP会话和cookie保持、浏览器的SSL验证、基本的制作摘要认证、有效的键值对cookie记录、自动解压缩、自动内容解码、文件分块上传、HTTP和HTTPS代理功能、连接超时处理、流数据下载等。Requests 支持 Python 2.62.7以及3.33.7,而且能在 PyPy 下运行。Python编程基础与应用配套课件编程基础与应用配套课件requests的安装有关它的更多介绍请访问英文网站https:/2.python-requ
3、ests.org/en/latest/或者中文网站https:/2.python-requests.org/zh_CN/latest/index.html。它的安装方法很简单,可以直接使用PIP进行安装:pip install requestsPython编程基础与应用配套课件编程基础与应用配套课件requests的常用函数Python编程基础与应用配套课件编程基础与应用配套课件response对象的一些属性Python编程基础与应用配套课件编程基础与应用配套课件范例11-4 requests的基本方法以下范例中使用简单的几行代码就可以实现抓取百度首页的信息。Python编程基础与应用配套课件
4、编程基础与应用配套课件范例11-4 requests的基本方法其中response.text和response.content可以获取网页源码,读者可以自己尝试一下它的结果如下Python编程基础与应用配套课件编程基础与应用配套课件范例11-5使用requests下载一个网页到本地应用requests库可以快速地所一个URL网页的源码信息下载下来,并保存到本地。以下范例把百度新闻首页抓取下来并保存到文本文件newshtml.txt中。Python编程基础与应用配套课件编程基础与应用配套课件范例11-5使用requests下载一个网页到本地结果如下:网页抓取结束,并写入文件newshtml.tx
5、t成功提示:使用requests.get(url)可以抓取网页,也可以加上超时要求,如r=requests.get(url,timeout=30)表示请求超时时间为30秒。在文件夹中找到newshtml.txt并打开它,Python编程基础与应用配套课件编程基础与应用配套课件阅读角阅读角Python编程基础与应用配套课件编程基础与应用配套课件爬虫与职业道德据说互联网上 50%以上的流量都是爬虫创造的,也许你看到很多热门数据都是爬虫所创造的,所以可以说无爬虫就无互联网的繁荣。曾有报道程序员因写爬虫而被刑侦的事件。Python编程基础与应用配套课件编程基础与应用配套课件爬虫与职业道德我家颁布中华人
6、民共和国网络安全法之后,对网络安全有了更高的要求。随着中国经济的不断往前走,知识产权问题会越来越重视,非法爬虫是现在一个重要的打击部分。技术是无罪的,技术本身确实是没有对错的,但使用技术的人是有对错的。公司或者程序员如果明知使用其技术是非法的,那么他们就需要为之付出代价。Python编程基础与应用配套课件编程基础与应用配套课件爬虫与职业道德编写爬虫程序爬取数据之前,为了避免某些有版权的数据后期带来的诸多法律问题,可以通过查看网站的robots.txt文件来避免爬取某些网页。Python编程基础与应用配套课件编程基础与应用配套课件爬虫与职业道德robots协议,告知爬虫等搜索引擎那些页面可以抓取
7、,哪些不能。它只是一个通行的道德规范,没有强制性规定,完全由个人意愿遵守。作为一名有道德的技术人员,遵守robots协议,有助于建立更好的互联网环境。网站的robots文件地址通常为网页主页后加robots.txt,如 文档本身是结构化的文本,有一定的规则,通过它的结构可以简化信息提取。于是,就有了lxml、pyquery、BeautifulSoup等网页信息提取库。一般我们会用这些库来提取网页信息。其中,lxml 有很高的解析效率,支持 xPath 语法(一种可以在 HTML 中查找信息的规则语法);pyquery 得名于 jQuery(知名的前端 js 库),可以用类似 jQuery 的语
8、法解析网页。Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。Python编程基础与应用配套课件编程基础与应用配套课件Beautifulsoup4的安装Beautiful Soup会帮你节省很多的工作时间。它的安装方法很简单,可以直接使用PIP进行安装:pip install beautifulsoup4要注意,包名是beautifulsoup4。如果不加上4,会是老版本,它是为了兼容性而存在,目前已不推荐使用。有关它的更多介绍请访问网站https:/beautifulsoup.readt
9、hedocs.io/zh_CN/v4.4.0/或者https:/ install lxmlpip install html5libPython编程基础与应用配套课件编程基础与应用配套课件范例11-6使用beautifulsoup4进行简单的网页解析有一段百度新闻首页的源代码,通过beautifulsoup4解析,把一些信息提取出来。因为HTML源代码比较复杂,这里使用了三引号把源代码引用。调用了lxml解析器。Python编程基础与应用配套课件编程基础与应用配套课件范例11-6使用beautifulsoup4进行简单的网页解析代码Python编程基础与应用配套课件编程基础与应用配套课件范例11
10、-6使用beautifulsoup4进行简单的网页解析它的结果 如下Python编程基础与应用配套课件编程基础与应用配套课件范例11-7使用beautifulsoup4的select()抓取导航有一段百度新闻首页的源代码,通过beautifulsoup4的select()方法把网站的导航URL和导航文字解析出来。在BeautifulSoup 对象的.select()方法中传入字符串参数,即可使用CSS选择器的语法找到tag。Python编程基础与应用配套课件编程基础与应用配套课件范例11-7使用beautifulsoup4的select()抓取导航代码Python编程基础与应用配套课件编程基础
11、与应用配套课件范例11-7使用beautifulsoup4的select()抓取导航代码Python编程基础与应用配套课件编程基础与应用配套课件范例11-7使用beautifulsoup4的select()抓取导航通过观察可以发现整个导航代码都在标签id=channel-all的div中,这一个div下面出现了a标签,它里面有导航的URL和导航的文字。通过遍历循环soup.select(div#channel-all a)的方法可以找到a标签。找到a标签后,再通过get()指定href属性可以获取它的URL,再通过string方法可以直接获取它的内容,即a标签中的导航文字。再细心观察,整个导航
12、代码也在标签里面,所以可以再缩小范围,使用soup.select(ul.clearfix a)来获取导航内容。Python编程基础与应用配套课件编程基础与应用配套课件范例11-7使用beautifulsoup4的select()抓取导航结果如下Python编程基础与应用配套课件编程基础与应用配套课件SQLite数据库的使用数据库的使用03Python编程基础与应用配套课件编程基础与应用配套课件SQLite的简介SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。SQLite的官方网站为https:/www.sqlite.org/index.html。SQLite可使用sqli
13、te3模块与Python进行集成。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的SQL接口。您不需要单独安装该模块,因为Python 2.5.x以上版本默认自带了该模块。它的一些常用的常量、函数和对象如下:1)Sqlite3.version#常量,版本号。2)sqlite3.Connect(database)#函数,连接数据库,返回Connect对象。3)sqlite3.Connect#数据库连接对象4)sqlite3.Cursor#游标对象5)sqlite3.Row#行对象Python编程基础与应用配套课件编程基础与应用配套课件 sqlite3的主要API及描述Py
14、thon编程基础与应用配套课件编程基础与应用配套课件 sqlite3的主要API及描述Python编程基础与应用配套课件编程基础与应用配套课件范例11-8使用sqlite3创建数据库和数据表创建数据库名称为“Student.db”,存放路径为“D:pythonBookpythonProject10SQLite3DB”。在数据库“Student.db”中创建数据表为“tbuser”,它的表结构如下所示Python编程基础与应用配套课件编程基础与应用配套课件范例11-8使用sqlite3创建数据库和数据表它的代码Python编程基础与应用配套课件编程基础与应用配套课件范例11-8使用sqlite3
15、创建数据库和数据表它的结果Python编程基础与应用配套课件编程基础与应用配套课件范例11-9sqlite3进行增、删、改操作数据库中的数据需要在不同的程序中进行调用,最为常见的操作是“增、删、改、查”四种操作。在数据库中进行数据的增加、删除和修改操作,它的一般步骤如下:1)建立数据库的连接。2)创建游标对象。3)根据SQL的Insert,Delete和Update语句,使用Connection.execute(sql)执行数据的增加、删除和修改操作,并根据返回的值判断操作结果。4)提交操作。5)关闭数据库连接对象。把以下数据插入到数据表“tbuser”中,并对其中的一些数据进行修改和删除操作
16、。Python编程基础与应用配套课件编程基础与应用配套课件范例11-9sqlite3进行增、删、改操作数据如下Python编程基础与应用配套课件编程基础与应用配套课件范例11-9sqlite3进行增、删、改操作代码如下Python编程基础与应用配套课件编程基础与应用配套课件范例11-9sqlite3进行增、删、改操作代码如下Python编程基础与应用配套课件编程基础与应用配套课件范例11-9sqlite3进行增、删、改操作代码如下Python编程基础与应用配套课件编程基础与应用配套课件范例11-9sqlite3进行增、删、改操作结果如下Python编程基础与应用配套课件编程基础与应用配套课件范
17、例11-10sqlite3进行数据的查询操作在数据库中进行数据的查询操作,它的一般步骤也与上面提到的“增、删、改”操作步骤类似,其中第三步改成Select查询语句即可,第四步则通常使用循环读取数据内容。Python编程基础与应用配套课件编程基础与应用配套课件范例11-10sqlite3进行数据的查询操作它的结果Python编程基础与应用配套课件编程基础与应用配套课件范例11-10sqlite3进行数据的查询操作对查询全部数据的操作,也可以通过指定列表的索引来匹配具体的数据,比如one0、one1等,代码如下:Python编程基础与应用配套课件编程基础与应用配套课件案例:新闻网页爬虫项目案例:新
18、闻网页爬虫项目04Python编程基础与应用配套课件编程基础与应用配套课件案例描述在十九届中共中央政治局第二次集体学习时,习总书记的重要讲话中指出“大数据是信息化发展的新阶段”。大数据与网络爬虫技术密不可分。网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫系统正是通过网页中的超链接信息不断获得网络上的其他网页的。百度新闻(http:/)由百度爬虫机器人选取每5分钟自动更新,它的搜索源于互联网新闻网站和频道,系统自动分类排序。某公司做一个新闻采集项目时,希望研究百度新闻中的新闻信息,用Python写一个网页爬虫把百度新闻的新闻抓取下来,
19、并存入数据库中,以作实验学习用。Python编程基础与应用配套课件编程基础与应用配套课件案例分析本项目可以用Python语言requests库抓取网页,使用Beautifulsoup4解析网页,提取有用的信息后,再通过SQLite作为数据库存储起来。它的主要实施步骤为:1)分析网页HTML代码,选择抓取的入口。2)创建数据库和数据表。3)编写爬虫解析函数和数据保存函数等自定义函数,以供程序调用。4)编写程序入口,调用自定义函数进行网页的抓取。5)编写测试代码,测试数据表是否已经正确保存抓取的网页数据。Python编程基础与应用配套课件编程基础与应用配套课件案例代码略。Python编程基础与应用配套课件编程基础与应用配套课件运行结果Python编程基础与应用配套课件编程基础与应用配套课件测试代码为了验证数据表是否已经成功保存抓取的网页数据,新建一个文件checkTable.py,并编写查询数据表的代码以验证。Python编程基础与应用配套课件编程基础与应用配套课件测试代码它的运行结果如下Python编程基础与应用配套课件编程基础与应用配套课件试一试在遵守职业道德和相关网络安全法律的前提下,请你进行如下操作:1)修改以上代码,让它每5分钟自动抓取百度新闻的网页信息。2)抓取百度百科(https:/