Python程序设计与大数据-第7章-网络爬虫

PPT
  • 阅读 91 次
  • 下载 0 次
  • 页数 50 页
  • 大小 2.645 MB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python程序设计与大数据-第7章-网络爬虫
可在后台配置第一页与第二页中间广告代码
Python程序设计与大数据-第7章-网络爬虫
可在后台配置第二页与第三页中间广告代码
Python程序设计与大数据-第7章-网络爬虫
可在后台配置第三页与第四页中间广告代码
Python程序设计与大数据-第7章-网络爬虫
Python程序设计与大数据-第7章-网络爬虫
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 50
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】Python程序设计与大数据-第7章-网络爬虫.pptx,共(50)页,2.645 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2399.html

以下为本文档部分文字说明:

7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-BeautifulSoup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of5617.7实战:全国空气质量第七章网络爬虫7.4正则

表达式第七章网络爬虫of3127.1.1网页的概念7.1类的方法1、URL的含义URL(UniformResourceLocator,URL)称为统一资源定位符,也称为网址。互联网上的每个页面,都对应一个UR

L。如:浏览上海市空气质量和pm2.5指标的网址为http://www.tianqi.com/air/shanghai.html。URL主要包含四个部分:协议部分,如上海市空气质量网址的协议为“http:”,表示超文本传输协议;网站名部分,如上海市空气质量网址的网站

名部分为www.tianqi.com,表示该网页所在的主机位置;端口部分,跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符,端口不是一个URL必须的部分,如果采用默认端口80,则可以省略端口部分;虚拟目录和文件名部分,如上海市空气质量网址的

虚拟目录和文件名部分内容为/air/shanghai.html,表示该网页在这个主机上的具体路径。第七章网络爬虫of3137.1.1网页的概念7.1类的方法2、页面的渲染用户若想要浏览城市空气质量排名情况,必须输入网址:http://www.

tianqi.com/air。得到如图7.1的结果,网页的样式,实际上是html源代码经过渲染后形成的。这个页面实际上是用户通过浏览器向DNS服务器提交http://www.tianqi.com/air后,找

到web主机服务器,主机服务器经过解析,将包含图片、HTML、JS、CSS等文件返回到用户浏览器,用户浏览器将这些文件的代码解析渲染,最终就是用户看到的结果。整个这个过程称为用户的请求和响应,响应给客户的是html代码。第七章网络爬虫of3147.1.1网页的概念7.1类的方法3

、网页文件的格式网页文件主要是由各种标签对构成的一个纯文本文件,如:<head>与</head>标签对,<li>与</li>标签对等,不同的标签有不同的作用。如:li标签定义列表项目,span标签被用来组合文档中的行内元素。标签可以有属性,可以有显示的文本。下面

以表格第一行乐山市对应的第二列的html代码(<spanclass="tdtd-2nd"><ahref="/air/leshan.html"target="_blank">乐山市</a></span>)为例进行说明:<s

panclass="tdtd-2nd">与</span>:是一对标签,class="tdtd-2nd",说明,span标签有一个class属性,值为"tdtd-2nd",用于设置列的外观。<ahref="/air/les

han.html"target="_blank">乐山市</a>,是span标签的内嵌<a>标签,用于设置超链接的,超链接文本是“乐山市”,超链接网址是/air/leshan.html,是个相对路径,

绝对路径是http://www.tianqi.com/air/leshan.html。第七章网络爬虫of3157.1.2网络爬虫的工作流程7.1类的方法网络爬虫实质上是一个能自动下载网页的程序,它是搜索引擎中

最核心的部分。通用网络爬虫是从一个或若干个初始网页上的URL开始,读取网页的代码并对页面结构进行分析、过滤,并对感兴趣的内容建立索引,同时提取网页上的其他感兴趣的超链接地址,放入到待爬行队列中,如此循环,

直到满足系统的停止条件为止。在爬取网页过程中,如何根据当前网页的超链接页面,形成待爬行队列呢?目前有基于IP地址搜索策略、广度优先策略、深度优先策略和最佳优先等,具体请看相关文档。第七章网络爬虫of3167.1.3Python与网页爬虫7.1类的方法使用Python语言实现网络

爬虫和信息提交是非常简单的事情,代码行数很少,也无须知道网络通信等方面知识,非常适合非专业读者使用。然而,肆意的爬取网络数据并不是文明现象,通过程序自动提交内容争取竞争性资源也不公平。就像那些肆意的推销电话一样,他们无视接听者意愿,

不仅令人讨厌也有可能引发法律纠纷。在互联网上爬取数据,要遵从Robots排除协议(RobotsExclusionProtocol),它也被称为爬虫协议,是网站管理者表达是否希望爬虫自动获取网络信息意愿的方法。管理者可以在网站根目录放

置一个robots.txt文件,并在文件中列出哪些链接不允许爬虫爬取。一般搜索引擎的爬虫会首先捕获这个文件,并根据文件要求爬取网站内容。Robots排除协议重点约定不希望爬虫获取的内容,如果没有该文件则表示网站内容可以被爬虫获得,然而,Robots协议不是命令和强制

手段,只是国际互联网的一种通用道德规范。绝大部分成熟的搜索引擎爬虫都会遵循这个协议,建议个人也能按照互联网规范要求合理使用爬虫技术。7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-BeautifulSoup库7.6实战:大数

据论文文章标题采集习题7.5实战:热门电影搜索of5677.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章网络爬虫of3187.2.1requests对象7.2网页内容获取-requests库概述http工作原理

:HTTP是基于请求-响应模式的,客户端发出请求叫Request,服务器端的响应叫Response。HTTP请求服务器端,常用的方式是GET和POST。通常,GET表示向指定的服务器请求数据,POST表示向指定的服务器提交要被处理的数据。Reque

sts请求的相关函数:Get(url,timeout=n):对应HTTP的get方法,获取网页内容,timeout设定每次请求的超时时间,单位秒。该函数将网页的内容封装成一个Response对象并返回。Post(url,data

={‘key’:’value’}):对应HTTP的post方式,其中字典用于传递客户端数据。第七章网络爬虫of3197.2.2response对象7.2网页内容获取-requests库概述通过Response对象的属性可以获取网页内容。属性:Status_code:htt

p请求返回的状态,整数,200表示连接成功,404表示失败。在处理网页数据前,要先判断该状态值。Text:页面内容,以字符串形式存储在text中。Encoding:HTTP响应内容的编码格式,通过此属性可以更改返回页面的编码格式,便于处理中文。方法:Json():如果HTTP响应页面包含JSO

N格式数据,该方法能够在HTTP响应内容中解析存在的JSON数据,这将带来解析HTTP的便利。raise_for_status():方法能在非成功响应后产生异常,即只要返。回的请求状态status_code不是200,这个方法会产生一个异常,用于try…ex

cept语句。使用异常处理语句可以避免设置一堆复杂的if语句,只需要在收到响应调用这个方法。第七章网络爬虫of31107.2.2response对象7.2网页内容获取-requests库概述当遇到网络问题时阿,req

uests会产生几种常用异常。例如:DNS查询失败、拒绝连接等,requests会抛出ConnectionError异常。遇到无效HTTP响应时,requests则会抛出HTTPError异常。若请求url超时,则抛出Timeout异常。请求超过了

设定的最大重定向次数,则会抛出一个TooManyRedirects异常。所以在使用requests时,通常需要将此语句放在try快中进行处理。第七章网络爬虫of31117.2.2response对象7.2网页

内容获取-requests库概述【案例7-1】爬取天堂图片网中小黄人图片网页的内容importrequestsdefgethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()returnr.textex

cept:return"“url="http://www.ivsky.com/tupian/xiaohuangren_t21343/"print(gethtmltext(url))7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-Bea

utifulSoup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56127.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章网络爬虫of31137.3.1BeautifulSoup库概述7.3网页内容解析-BeautifulSoup库beautifulsoup4

库,也称为BeautifulSoup库或bs4库,用于解析和处理HTML和XML。它的最大优点是能根据HTML和XML语法建立解析树,进而高效解析其中的内容。类似于c#中的或HTTP中的文档类HTML建立的Web页面一般非常复杂,除了有用的内容信息外,还

包括大量用于页面格式的元素,直接解析一个Web网页需要深入了解HTML语法,而且比较复杂。beautifulsoup4库将专业的Web页面格式解析部分封装成函数,提供了若干有用且便捷的处理函数。有关beautifulso

up4库的更多介绍请参考这个第三方库主页:http://www.crummy.com/software/BeautifulSoup/bs4/第七章网络爬虫of31147.3.1BeautifulSoup库概述7.3网页内容解析-Beaut

ifulSoup库例如:有一个描述学生选课的XML代码,表示20004146学生选修了2门课,20004176选修了1门课。<scs><sc><sno>20004146</sno><courses><course><cno>1111</cno><grad

e>67</grade></course><course><cno>2222</cno><grade>78</grade></course></courses></sc><sc><sno>20004176</sno><courses

><course><cno>2222</cno><grade>70</grade></course></courses></sc></scs>第七章网络爬虫of31157.3.1BeautifulSoup库概述7.3网页内容解析-BeautifulSoup库它对应的Beauti

fulSoup对象的逻辑结构可以理解成这样一棵树。树中一般有4类节点:Tag,NavigableString,BeautifulSoup,Comment,但很多时候,可以把节点当作Tag对象。第七章网络爬虫of31167.3.2beautifulsoup4库常用方

法和tag节点7.3网页内容解析-BeautifulSoup库beautifulsoup4提供Xpath操作方式解析数据:1.即按照解析树的逻辑结构,解析数据。2.解析树上的常用节点是tag节点。3.常用方法:BeautifulSoup(html,”html.par

ser”):该方法需要两个参数,第一参数是需要提取数据的html文档内容或XML,第二个参数是指定解析器。该方法的目的是生成一颗解析树。find_all(name,attrs,recursive,string,limit):方

法可以根据标签名字、标签属性和内容检索并返回标签列表。name为标签名;attrs为标签的属性名和值,采用JSON表示;recursive,设置查找层次;string标签的字符串内容;limit返回匹配结果的个数。利用st

ring参数可以实现模糊查找。find(name,attrs,recursive,string):返回找到的第一个结果,find_all()函数由于可能返回更多结果,所以采用列表形式存储返回结果;find()函数返回字符串形式,找不到,返回None。第七章网络爬虫of31177.3.2beauti

fulsoup4库常用方法和tag节点7.3网页内容解析-BeautifulSoup库例如:根据选课学号和门数标签字符串,输出选课的学号。>>>soup=BeautifulSoup('<scs><sc><sno>20004146</sno><number>2</number></sc><sc

><sno>20181012</sno><number>5</number></sc></scs>')>>>tag=soup.scs>>>print(tag.string)>>>print(tag.con

tents[0].name)>>>print(tag.contents[0].sno.string)>>>soup.find_all('sno')7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-

BeautifulSoup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56187.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章网络爬虫of31197.4.1正则表达式概念7.4正则表达式从网页中解析需要的数据,除了采用beau

tifulsoup4库的方法,也可以根据被查找字符串的特征,采用正则表达式的方法,得到符合条件的子字符串。正则表达式库是python的标准库,使用时:importre,即可。正则表达式(RegularExpression):称为规则表达式,又称为规则字符串,它通过一

个字符序列来表示满足某种逻辑条件的字符串,主要用于字符串模式匹配或字符串匹配。一个正则表达式由字母、数字和一些特殊符号组成,特殊符号也称为元字符,在正则表达式中具有特殊的含义,可以用来匹配一个或若干个满足某种条件的字符,这些元字符才是构成正则表达式的关键要素。正则表达式通过元字符

的各种运用,可以表示丰富的匹配字符串。对程序员来说,如果需要从源字符串中得到需要的子字符串(也称结果字符串),首先要分析子字符串在源字符串中的规律,根据规律去描述正则表达式。第七章网络爬虫of31207.4.2正则表达式元字符介绍7.4正则表达式1、字符限

定元字符字符作用[m1m2……mn]表示一个字符集合(m1、m2……mn等均为单个字符),表示可以与集合中的任意一个字符匹配[^m1m2……mn]表示可以与集合之外的任意一个字符匹配[m-n]表示一个字符范围集合,表示可以与字符m到n之间的所有字符匹配[^m-n]表示可以

与集合范围之外的任意一个字符匹配\d用来匹配一个数字字符,相当于“[0-9]”\D用来匹配一个非数字字符,相当于“[^0-9]”\w用来匹配一个单词字符(包括数字、大小写字母和下画线),相当于“[A-Z

a-z0-9_]”\W用来匹配任意一个非单词字符,相当于“[^A-Za-z0-9_]”\s用来匹配一个不可见字符(包括空格、制表符、换行符等)\S用来匹配一个可见字符.用来匹配除了换行符外的任意一个字符第七章网络爬虫of312

17.4.2正则表达式元字符介绍7.4正则表达式【简单案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></sp

an><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">优</em></span>'''则:>>>re.findall(

r"\d\d",str)['17','79','80']#匹配出str中只含2个数字的字符串>>>re.findall(r"[6789]\d",str)#匹配出str中只含2个数字的字符串,且第一个数字符号可以是6或7或8或9['79','80']>>>re.findall(r"

td.",str)#匹配出str中以td开头,第三个字符不是换行符的连续三个字符['td','td-','td','td-','td','td-']>>>s='aaa,bbbccchigh'#定义字符串>>>re.fin

dall(r'[a-zA-Z]+',s)['aaa','bbb','ccc','high']#实现了分词效果第七章网络爬虫of31227.4.2正则表达式元字符介绍7.4正则表达式2、数量限定元字符字符作用*用来匹配前面

的字符任意多次(0到多次)+用来匹配前面的字符一次或多次?用来匹配前面的字符零次或一次{n}用来匹配前面的字符n次,n是一个非负整数{n,}用来匹配前面的字符至少n次,n是一个非负整数{n,m}用来匹配前面的字符串至少n次,至多m次,m和n为非负整

数且n≤m*?,+?,??,{}??跟在前面所述的任何一个数量限定符后面时,表示匹配模式是非贪婪的,即尽可能少地匹配字符串。而默认情况下,匹配是贪婪的,即尽可能多地匹配所搜索的字符串。请将案例7-2中注释掉的正则表达

式改为list1=re.findall(r"\"_blank\">.{1,}?</",str1),看运行结果第七章网络爬虫of31237.4.2正则表达式元字符介绍7.4正则表达式【简单案例】>>>impor

tre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd

-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">优</em></span>'''则:#re.findall(r"\d{2,}",str)等价于re.findall(r"\d\d",str)

,re.findall(r"\d\d\d…",str)>>>re.findall(r"\d{2,}",str)['17','79','800']#匹配出str中至少含2个数字的字符串>>>re.findall(r"\d{1,}b\d{1

,}",str)['79b800']#匹配出str中数字串中包含一个字母b的字符串>>>s="fdfd<a>aaaaa</a>dfefe<b>bbbb</b>">>>regex='<.*?>.*?<\/.*?>'>>>re.findall(regex,s)['<a>aaaaa</a>','<

b>bbbb</b>']#从字符串中分离出标签对第七章网络爬虫of31247.4.2正则表达式元字符介绍7.4正则表达式3.分组元字符字符作用(正则表达式)将括号之间的正则表达式称为一个子组(group),一个子组对应一个匹配字符串,子组的匹配内容会返回(?P=<name>…)也用

来定义一个组。这种方式定义的组可以被组名索引进行访问,访问方式为“(?P=name)”。|用来将两个匹配条件进行逻辑“或”运算第七章网络爬虫of31257.4.2正则表达式元字符介绍7.4正则表达式【简单案例】>>>importre>>>str="SatMay2822:18:59199

4::gsbxh@wtkxw.gov::770134739-5-5FriDec119:33:071995::odzfm@sqkqgefpjbd.gov::817817587-5-11"则:>>>regex='::([a-z]{2,13})@([

a-z]{2,13})\.(com|edu|net|org|gov)'>>>re.findall(regex,str)#只输出分组内的匹配字符串[('gsbxh','wtkxw','gov'),('odzfm','sqkqgefpjbd','gov')]第七章网络

爬虫of31267.4.2正则表达式元字符介绍7.4正则表达式4、字符定位元字符字符作用^用来匹配输入字符串是否以。。。。开始。$用来匹配输入字符串是否以。。。。结束。\b用来匹配一个单词边界(即单词和空格之间的位置)。事实上,所谓单词边界不是一个字符,而只是一个位置。\B用来匹配一个

非单词边界。第七章网络爬虫of31277.4.2正则表达式元字符介绍7.4正则表达式【简单案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.

html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">优<

/em></span>'''则:>>>re.findall(r"td",str)['td','td','td','td','td','td']>>>re.findall(r"^td",str)#判断str是以td开头,进行匹配[]第七章

网络爬虫of31287.4.2正则表达式元字符介绍7.4正则表达式5.转义元字符字符作用\元字符在符号在正则表达式中与特殊的含义,如果想要匹配元字符,可以采用转义的方式。如:\\,\*,\.等第七章网络爬虫of31297.4.2正则表达式元字符

介绍7.4正则表达式【简单案例】>>>importre>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><spanclass="tdtd-4rd">17

</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">优</em></span>'''则:>>>re.findall(r"\".*?\"",str)#匹配出str中所有""之间的字符串['"tdtd-2nd"'

,'"/air/nanchang.html"','"_blank"','"tdtd-4rd"','"tdtd-4rd"','"f1"','"color:#79b800"']>>>re.findall(r'["].*?["]',str)['"tdt

d-2nd"','"/air/nanchang.html"','"_blank"','"tdtd-4rd"','"tdtd-4rd"','"f1"','"color:#79b800"']#通过结果可以看出,如果把元字符放在[]中,就不需要

采用转义方式。第七章网络爬虫of31307.4.3正则表达式的常用函数介绍7.4正则表达式re.compile(pattern,flags=0)匹配任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象re.search(p

attern,string,flags=0)使用可选标记搜索字符串中第一次匹配正则表达式的对象。如果匹配成功,则返回匹配对象,否则返回Nonere.match(pattern,string,flags=0)使用带有可选标

记的正则表达式的模式来匹配字符串,匹配是从字符串的第一个字符开始进行。如果匹配成功,返回匹配对象,否则返回Nonere.findall(pattern,string,flags=0)查找字符串中所有匹配的子字符串,并返回一个字符串匹配列表匹配对象.g

roup(num=0)返回整个匹配对象,或者编号为num的特定子组第七章网络爬虫of31317.4.3正则表达式的常用函数介绍7.4正则表达式例如:下面的正则表达式定义从s中匹配出ip地址的内容。>>>importre>>>s="ipddre

ss192.168.10.1else">>>m1=re.search(r"(([01]{0,1}\d{0,1}\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])",s)>>>print(m1.grou

p())#输出192.168.10.1>>>str='''<spanclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">南昌市</a></span><span

class="tdtd-4rd">17</span><spanclass="tdtd-4rd"><emclass="f1"style="color:#79b800">优</em></span><spa

nclass="tdtd-2nd"><ahref="/air/nanchang.html"target="_blank">武汉市</a></span><spanclass="tdtd-4rd">17</span><spanc

lass="tdtd-4rd"><emclass="f1"style="color:#79b800">优</em></span>'''>>>re.findall(r"\"_blank\">(.{1,}?)</a>

",str)#匹配出所有的城市名['南昌市','武汉市']第七章网络爬虫of31327.4.3正则表达式的常用函数介绍7.4正则表达式【案例】爬取解析并保存天堂图片网的小黄人图片importrequestsimp

ortre#爬取天堂图片网小黄人图片网页源码url='http://www.ivsky.com/tupian/xiaohuangren_t21343/'data=requests.get(url).text#小黄人图片的超链接格式#<imgsrc="http://img.ivsky.com/

img/tupian/t/201411/01/xiaohuangren-009.jpg"width="135"height="135"alt="卑鄙的我小黄人图片">regex=r'<imgsrc=\"(.*?.jpg)\"'#取出小黄人图片网址pa=re

.compile(regex)#转为pattern对象ma=re.findall(pa,data)print('本次爬取共获取图片'+str(len(ma))+'张')#列表长度,即找到图片个数i=0forimgurlinma:i+=1print('正在爬取'+imgurl)i

mgdata=requests.get(imgurl).contentwithopen(str(i)+'.jpg','wb')asf:f.write(imgdata)print('爬取完毕!')第七章网络爬虫of31337.4.3正则表达式的常用函数介绍7.4正

则表达式输出结果:7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-BeautifulSoup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56347.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章网络爬虫of31357.5

实战:热门电影搜索【案例】搜索2345电影网站上,排名前50的电影排行榜,列出电影名称、上映时间、演员、简介,并保存电影海报图片到文件中importrequestsfrombs4importBeautifulSoupdefgetHtml(url):try

:r=requests.get(url,timeout=30)r.raise_for_status()r.encoding='gbk'returnr.textexcept:return''第七章网络爬虫of31367.5实战:热门电影搜索defsaveInfo(html):soup=B

eautifulSoup(html,'html.parser')move_ls=soup.find('ul',class_='picListclearfix')movies=move_ls.find_all('li')fortopinmovies:img_ur

l=top.find('img')['src']#查找所有的图片链接name=top.find('span',class_='sTit').get_text()#得到电影名称try:time=top.find('span',class_='sIntro').get_tex

t()except:time='暂时无上映时间信息'try:actors=top.find('p',class_='pActor')actor=''foractinactors.contents:actor=actor+act.string+''e

xcept:actor='暂时无演员姓名'第七章网络爬虫of31377.5实战:热门电影搜索iftop.find('p',class_='pTxtpIntroHide'):intro=top.find('p',class_=

'pTxtpIntroHide').get_text()else:intro=top.find('p',class_='pTxtpIntroShow').get_text()print('影片名:{}\t{}\n{}\n{}\n\

n'.format(name,time,actor,intro))#下载图片withopen('D:/movie/'+name+'.jpg','wb+')asf:img_url="http:"+img_urlimg

data=requests.get(img_url).contentf.write(imgdata)defmain():url='http://dianying.2345.com/top/'html=getHtml(url)saveInfo(htm

l)main()第七章网络爬虫of31387.5实战:热门电影搜索运行结果:7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-BeautifulSoup库7.6

实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56397.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章网络爬虫of31407.6实战:大数据论文文章标题采集【案例】采用正则表达式的方法,解析出大论文的文章标题importrequestsf

rombs4importBeautifulSoupimportredefgethtmltext(url):try:r=requests.get(url,timeout=30)r.raise_for_status()#r.encoding='utf-8'returnr.textexcep

t:print('error')return""defpaper_title(page):myItems=re.findall(r'target=\"_blank\">(.*?)</a>',page)foriteminmyItems:print(item)第七章网

络爬虫of31417.6实战:大数据论文文章标题采集url='http://www.lunwendata.com/6674.html'html=gethtmltext(url)#得到大论文的总篇数list1=re.findall(r'<atitle="总数">&nbsp;<b>(.*?

)</b>',html)count=int(list1[0])print('大数据论文共'+str(count)+'篇')j=0#一页显示20篇论文,构造出每页论文的域名foriinrange(1,count+1,20):print('第'+str(j+1)+'页'

)ifj==0:url='http://www.lunwendata.com/6674.html'else:url='http://www.lunwendata.com/6674_'+str(j)+'.html'j=j+1#print(url)#读取网页并解析html=gethtmlte

xt(url)paper_title(html)第七章网络爬虫of31427.6实战:大数据论文文章标题采集运行结果:7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内

容解析-BeautifulSoup库7.6实战:大数据论文文章标题采集习题7.5实战:热门电影搜索of56437.7实战:全国空气质量第七章网络爬虫7.4正则表达式第七章网络爬虫of31447.7实战:全国空气质量【案例】用beautifulsoup4爬取全

国空气质量数据importrequestsfrombs4importBeautifulSoup#一共有318座重点城市a=[[0forcolinrange(3)]forrowinrange(318)]defgethtmlte

xt(url):try:r=requests.get(url,timeout=30)r.raise_for_status()#r.encoding='utf-8'returnr.textexcept:print('error')return""第七章网

络爬虫of31457.7实战:全国空气质量deffillweather(soup):j=i=0city_name_list=soup.find_all(class_='tdtd-2nd')city_num_list=soup.find_all(class_='tdtd

-4rd')#print(len(city_name_list))#print('ghghggh')whilei<len(city_name_list):city_name=city_name_list[i].get

_text()city_num=city_num_list[j].get_text()#city_num=city_num_list[j].text#两种方法都可以city_info=city_num_list[j+1].get_text()a[i]

[0]=city_namea[i][1]=city_numa[i][2]=city_infoi=i+1j=j+2defprintweather():print('排名','城市','空气质量指数','质量状况')

foriinrange(317):print(i+1,a[i])第七章网络爬虫of31467.7实战:全国空气质量defmain():#全国重点城市空气质量指数排行榜url='http://www.tianqi.com/air'html=gethtm

ltext(url)#print(html)if(html!=''):soup=BeautifulSoup(html,'html.parser')fillweather(soup)printweather()main()第七

章网络爬虫of31477.7实战:全国空气质量运行结果:7.1网络爬虫工作的基本原理7.2网页内容获取-requests库概述7.3网页内容解析-BeautifulSoup库7.6实战:大数据论文文章标题

采集习题7.5实战:热门电影搜索of56487.7实战:全国空气质量第七章网络爬虫7.4正则表达式习题:1.用Python爬取今日头条动态页面数据。2.用Python爬取电影票房数据网http://58921.com/alltime,并按年份进行票房

统计。3.用Python爬取你感兴趣的电影的影评。4.用正则表达式的分组元字符求解案例7-6的城市列表。5.用Python爬取天堂图片网http://www.ivsky.com/tupian中的节日图片,并保存到文件中。6.

用Python的itcha库,爬取好友的个性签名数据并进行词频分析和聚类。7.用Python爬取饿了么网站数据。8.使用python模拟登录网站。9.从美国驻北京大使馆提供的PM2.5历史数据网站上(http://www.stateair.net/web/

historical/1/1.html),爬取北京pm25数据的相关csv文件并作处理。感谢聆听

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?