笔记目标
利用正则表达式和命令抓取南京大学商学院师资力量中各老师的信息,网址为:
正则表达式( ,代码中简写re),正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。中的re模块使 语言拥有全部的正则表达式功能。
是的一个HTTP客户端库,跟,类似,那为什么要用而不用系列呢?答曰:因为短啊!一般只需要三行就可以获取网页代码了。安装包,可以用pip ,至于pip包的安装请参看。
命令获取网页代码
第一行为声明可以编译中文,如果不声明,当出现需要输出中文时就会报错,如下图,想输出个‘爱你’都不行。
第二行为调用,第三行为调用正则表达式,因为暂时没用到所以它是灰色的。
第四行为将从网址”“获取代码并让其贴上一个标签名为res,注意这里的‘=’不是赋值的意思。
第五行为打印出刚刚保存的res的代码,并声明为text格式,运行以后你就可以得到刚刚那个网址所有的源代码。这几行命令可以适用于抓取一个没设置反爬虫或者没有登录名的网页。
抓取文本信息
获得源代码以后,就可以去找想要的信息所对应的规律,然后通过这个规律抓出信息。正则表达确实万能通用,但是要说方便的话, soup可能会更好一点, soup可以通过标签信息来抓取你想要的,不需要用肉眼去慢慢找规律了。附一个 soup的官方说明:
。
下面我们用正则表达来获取老师们的姓名。根据在源代码中的规律,可以发现在每个老师姓名前后都是这样的:
姓名
,所以这就是一个规律,可以细心发现第一个
是多一个空格的,所以虽然源代码中也有别的文本信息是在
xx
中,也可以区分。可是如果以后碰到完全一样的规律咋么办?那就要先抓大后抓小,先把所在的大区域定下来再抓就可以了。
上图中代码为将源代码中的老师姓名这一对象地址存储到Name中,然后用for语句打印出。re.可以抓出所有满足规律的信息,但是若是用re.只能抓出text中第一个符合的信息。re.S表示可以无视源代码中的换行,这样就不会因为换行而导致信息的错乱。第六行的完整含义就是从目标代码res.text中抓取符合规律‘
xx
’的信息。下面给出.*?各自含义:
抓取图片并存入文件夹
抓取了老师的姓名以后,我们来抓一下老师们的照片吧,下图为完整代码~
与抓取文本信息一样,第八行为抓取符合规律的图片地址,把地址存储在中。第九到十六行开始存储图片,fp=open(‘自定义的文件名’,‘打开格式’)用于打开一个文件,如果不存在则会新建一个文件,图中第13行即为打开(新建)pic文件夹,其中打开(新建)i个.jpg格式文件,‘wb’为打开格式网页爬虫网页爬虫,格式为用二进制写入。fp.write(xxx)将xxx的内容写入文件中。fp.close()为关闭和清理文本。完成后的输出结果如下,pic文件夹位置是在你这个的位置下。
蓝鲸OLS实验室创始人之一程令国老师的论文The of : from China's new rural ,在国际权威期刊 of 上在线发表。图为2016年4月程老师在东南大学公共卫生学院汇报该论文。
本期小编:
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh