分享好友 行情首页 行情分类 切换频道
【复习】利用正则表达式爬取网站的信息
2024-12-24 08:59  浏览:92

那么利用正则表达式很难再清理掉这些代码。先不管这些,我们这节课还是用上一次学到的方法爬取某学校的校务公开内容。

一、代码分列式解释

第一部分代码

 

第二部分代码

 

第三部分代码

 

第四部分

 

第五部分

 

第六部分

 

第七部分

 

第八部分

 

二、框架分析

一共有以上8个部分的代码。

第一部分是导入库模块,没什么好说的

第二部分是设置一个常量,其实如果不设置也无所谓,大不了在后面的代码写这个量。

第三部分

def hq_yuandaima(url):
    ydm = requests.get(url)
    return ydm.content.decode()

这个函数意思就是,你给个url网址,它就返回该网址下网页的源代码,实际上在本爬取的过程中,它用到了两次,一次是获取的目录页的源代码,一次是获取的具体内容页的源代码。

第四部分

def hq_ljlb(ydm):
    ljlb=[]
    quda_ydm = re.findall('newArtical">(.*?) class="page"',ydm,re.S)[0]
    zhuaxiao_ydm = re.findall('href="(.*?)"',quda_ydm,re.S)
    for url in zhuaxiao_ydm:
        ljlb.append(qianzhui + url)
    return ljlbz

这个函数是为了从目录页的源代码里获取每一条信息的绝对网址,先把ljlb设置成一个空列表,然后取大,聚焦到有用的那一部分源代码,然后抓小,就抓相对路径的网址

第五部分

def hq_btnr(ydm):
    bt = re.search('<h6>(.*?)</h6>',ydm,re.S).group(1)
    nr = re.search('section(.*?)fanye',ydm,re.S).group(1)
    return bt,nr

这个函数是从内容页获取该篇章的主题,以及正文,返回主题和正文的内容

第六部分

def save(btt,nrr):
    os.makedirs('南京小学',exist_ok=True)
    with open(os.path.join('南京小学',btt + '.txt'),'w',encoding='utf-8') as f:
        f.write(nrr) 

这个函数是保存到本地,两个参数分别是标题,和内容,标题赋值给txt文件,内容写入

第七部分

def hq_zwbtnr(url):
    muluyeydm = hq_yuandaima(url)
    bbt,nnr = hq_btnr(muluyeydm)
    save(bbt,nnr)

这个函数开始调用之前的那几个函数了,第二行开始,把网址是url的提取出来源代码给muluyedm,第三行,然后调用第五部分代码的函数,从源代码中提取出来标题和内容,第四行,调用第六部分的函数将第三行获取到的值,赋值到第六部分的函数,保存到本地。

也就是说这个函数是从网址获取源代码,从源代码获取标题和内容,讲标题和内容用第六部分函数的方法保存到本地,也就是说这个第七部分只是内容页运行, 目录页不运行,毕竟目录页无法返回内容。

第八部分

if __name__ == '__main__':
    muluyeydm = hq_yuandaima(ksurl)
    ljlb = hq_ljlb(muluyeydm)
    pool = Pool(4)
    pool.map(hq_zwbtnr,ljlb)

运行函数了,如果把爬取数据这件事比喻成浇灌庄稼,那前面七步相当于在挖一条沟,这个第八部分才是向沟里注水,水按照挖好的沟流淌,最终达成灌溉的目的。

第一行就是运行代码

第二行,把ksurl网页的源码通过第三部分的函数提取出来给muluyeydm,这里的ksurl就是目录页的网址,意思就是提取目录页的源代码

第三行,就是从第二行的源代码里利用第四部分的函数提取出每一个链接的绝对网址赋值给ljlb,留着最后一行用

第四行,开启四个线程

第五行,map里面的参数,第一个是函数,第七部分的函数,后面不要括号,参数就是第三行提取出来的所有网址。第七部分的函数就是保存到本地,意思就是,每一个内容页的绝对网址,提取出标题和内容,保存到本地。

全部代码

    以上就是本篇文章【【复习】利用正则表达式爬取网站的信息】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/4044.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
微信视频号直播广告如何投放
我们现在发现很多企业做微信视频号的直播都要投广告了,没错,通过广告定向投放人群能将精准客户吸引到直播间,再通过主播的带货
IE浏览器软件哪个好 常用的IE浏览器软件排行
在这篇文章中,我们将深入探讨IE浏览器软件的热门选择及其在市场上的常用排行。无论是经典版本还是后续更新,你会了解到哪些浏览
Windows Phone 上的触控手势
下载代码示例当然,对于一种相对仍很年轻的技术来说,存在这么多的触控 API 也不足为奇。而且,多点触控比鼠标要复杂得多。这部
六年级上册16课夏天里的成长评课稿听课记录
六年级上册16课夏天里的成长评课稿听课记录一、读单元页,明确任务师:今天我们来学习第五单元,第五单元是一个习作单元。在这一
影视解说文案自动生成器-影视解说文案自动生成器2.50
在数字化时代的浪潮下,影视行业迎来了前所未有的发展机遇。随着影视作品的增多,怎样为这些作品打造出引人入胜的解说文案,成为
适合发朋友圈的句子大全11篇
【#好词好句# #适合发朋友圈的句子大全11篇#】旅行可以放松自己的心情,宽阔自己的心境,忘掉不顺心,迎接新的开心。旅行是在寻
从零开始学OPERA操作系统
1、房间查找 包括以下内容房间的状态分10种类型所有房间干净,经主管检查有问题,待查房干净房脏房一 快捷键的操作1 F1 OPERA HE
生成式AI为高级分析提供了新的可能性
生成式人工智能(genai) 的出现为工业过程分析带来了令人兴奋的新前景。这项变革性技术可以根据用户的提示生成新的文本、代码和图
阿里P9的真实生活!年薪300万却活得像穷人,依然生活在温饱线上……
  阿里巴巴是许多人梦想的工作地方。  在阿里,P9的年薪甚至高达300万。  他说,他的生活标准,其实并不高,只是跟随着收
本企业新闻
推荐企业新闻
发表评论
0评