爬虫入门实践之爬取虎扑论坛帖子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/carson0408/article/details/89890687

         现在网络以及移动互联网发展迅速,大家花费越来越多的时间逛一些网站浏览帖子,比如贴吧、论坛等。博主喜欢打篮球,爱看NBA,因此常常行迹于虎扑论坛,看一些精彩赛事以及比较好的帖子。本文主要通过对虎扑某一版的帖子进行统一收集,并总结这些帖子的相关信息。

1.选择需要操作的版块

        本文主要针对NBA版块进行信息的批量收集,https://bbs.hupu.com/all-nba这是该版块的网址。

        根据上图所示,本文需要收集的是这些帖子的标题,来源,url,发表时间,以及作者姓名。其中从上图网页在哪个只能知道标题与来源,并从源码中获取url,然后打开对应url页面,获取发表时间与作者信息,并将这些信息整理。

2.信息筛选、编写正则表达式、爬虫

         进入上述论坛页面,点击F12,点击标题对应的源代码如下图所示:

根据上图可以定义标题匹配规则, pattern3='<a href=".*?" target="_blank" title="(.*?)">'

url匹配规则:pattern1='<a href="/(.*?)" target="_blank" title=".*?">'

上图可以获得该帖子的来源,匹配规则可以定义为: pattern2='<a href="/.+?" target="_blank">(.*?)</a>'

     对于时间和作者,则可以根据获取的url,进入相应页面获取。

根据上图可定义作者的匹配规则:pattern='<a class="u" target="_blank" href=".*?">(.*?)</a>'

编写帖子的时间定义为:pattern4='<span class="stime">(.*?)</span>'

因此爬虫步骤如下:

1.打开https://bbs.hupu.com/all-nba页面,根据上面定义的标题、url、来源三个规则分别筛选出标题、url、来源集合。

2.根据1中筛选的url集合,遍历集合,构造完整的url,访问url对应的页面,根据作者和时间的规则获取作者和时间信息,分别构造两个集合。

3.将五个集合信息一一对应整理。

具体代码如下:

import re
import urllib.request


def getcontent(url):
    req=urllib.request.Request(url)
    req.add_header('User-Agent', 'Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:66.0)Gecko/20100101 Firefox/66.0')
    data=urllib.request.urlopen(req).read().decode('utf-8')

    pattern1='<a href="/(.*?)" target="_blank" title=".*?">'
    urlList=re.compile(pattern1).findall(data)
    pattern2='<a href="/.+?" target="_blank">(.*?)</a>'
    pattern3='<a href=".*?" target="_blank" title="(.*?)">'
    sourceList=re.compile(pattern2).findall(data)
    titleList=re.compile(pattern3).findall(data)
    authorList=[]
    totalUrlList=[]
    timeList=[]
    info=[]
    for url in urlList:
        url="https://bbs.hupu.com/"+url
        totalUrlList.append(url)
        html=urllib.request.urlopen(url).read().decode('utf-8')
        pattern='<a class="u" target="_blank" href=".*?">(.*?)</a>'
        pattern4='<span class="stime">(.*?)</span>'
        aulist=re.compile(pattern).findall(html)
        tiList=re.compile(pattern4).findall(html)
        authorList.append(aulist[0])
        timeList.append(tiList[0])
    info.append(totalUrlList)
    info.append(sourceList)
    info.append(titleList)
    info.append(authorList)
    info.append(timeList)
    return info
if __name__ == '__main__':
    url="https://bbs.hupu.com/all-nba"
    info=getcontent(url)
    totalurlList=info[0]
    sourceList=info[1]
    titleList=info[2]
    authorList=info[3]
    timeList=info[4]
    length=len(totalurlList)
    for i in range(length):
        str="标题:"+titleList[i]+" "+"作者:"+authorList[i]+" "+"URL:"+totalurlList[i]+" "+"发布时间:"+timeList[i]+" "+"帖子来源:"+sourceList[i]
        print(str)

运行之后,结果如下:

标题:持续高光的杜兰特,交相辉映的伦纳德,心态失衡的小学生 作者:步虚词终 URL:https://bbs.hupu.com/27256859.html 发布时间:2019-05-06 18:27 帖子来源:篮球场
标题:NBA有哪些严肃而不刻意的搞笑瞬间? 作者:leo1824 URL:https://bbs.hupu.com/27253940.html 发布时间:2019-05-06 14:53 帖子来源:湿乎乎的话题
标题:【狂言Doggy】终极杀戮机器莱昂纳德 作者:我是狂言Doggy URL:https://bbs.hupu.com/27256293.html 发布时间:2019-05-06 17:37 帖子来源:篮球场
标题:美媒评四大总决赛fmvp 是否实至名归 作者:Ronagio URL:https://bbs.hupu.com/27256570.html 发布时间:2019-05-06 18:02 帖子来源:湿乎乎的话题
标题:杜兰特季后赛受助攻率60%,哈登仅10% 作者:哈登卖萌 URL:https://bbs.hupu.com/27257971.html 发布时间:2019-05-06 19:51 帖子来源:湿乎乎的话题
标题:说真,这批超巨里最早出现断崖式退化的有可能是库里… 作者:降A大调Waltz URL:https://bbs.hupu.com/27256225.html 发布时间:2019-05-06 17:30 帖子来源:湿乎乎的话题
标题:下一个有这种热图的全明星会是谁? 作者:大悟道人 URL:https://bbs.hupu.com/27257154.html 发布时间:2019-05-06 18:47 帖子来源:湿乎乎的话题
标题:朱芳雨什么水平? 作者:亦辰呦 URL:https://bbs.hupu.com/27256730.html 发布时间:2019-05-06 18:15 帖子来源:湿乎乎的话题
标题:早期的NBA直播原来是在CCTV2! 作者:龙腾轩 URL:https://bbs.hupu.com/27253595.html 发布时间:2019-05-06 14:30 帖子来源:湿乎乎的话题
标题:NBA的那些经典的庆祝动作,你觉得哪个动作最撩? 作者:格李芬 URL:https://bbs.hupu.com/27256871.html 发布时间:2019-05-06 18:28 帖子来源:湿乎乎的话题
标题:洛瑞:上一个我搭档过像伦纳德这么强的是姚明 作者:虎扑颜值MVP URL:https://bbs.hupu.com/27254163.html 发布时间:2019-05-06 15:08 帖子来源:湿乎乎的话题
标题:一图流:约老师赛后采访扯断话筒什么水平? 作者:F.Cristiano URL:https://bbs.hupu.com/27253266.html 发布时间:2019-05-06 14:08 帖子来源:湿乎乎的话题
标题:保罗的正式绰号叫什么? 作者:立早雨林 URL:https://bbs.hupu.com/27253544.html 发布时间:2019-05-06 14:27 帖子来源:湿乎乎的话题
标题:小卡新绰号投票 作者:于海8 URL:https://bbs.hupu.com/27257913.html 发布时间:2019-05-06 19:46 帖子来源:湿乎乎的话题
标题:格林对小里弗斯犯规的裁判报告出炉 作者:Joshua徐 URL:https://bbs.hupu.com/27254550.html 发布时间:2019-05-06 15:35 帖子来源:湿乎乎的话题
标题:ZT Reddit【ESPN BR】内内考虑本赛季结束后退役 作者:wjamesh URL:https://bbs.hupu.com/27252961.html 发布时间:2019-05-06 13:48 帖子来源:火箭专区
标题:NBA搞笑防守,我就服掐老詹的 作者:年轻的勒布朗詹姆斯 URL:https://bbs.hupu.com/27249017.html 发布时间:2019-05-06 10:06 帖子来源:湖人专区
标题:鲨鱼今天发的,什么水平? 作者:crazy丶寒辰 URL:https://bbs.hupu.com/27250990.html 发布时间:2019-05-06 11:44 帖子来源:湖人专区
标题:勇士输球后还有更大的打击 作者:安颜泪人 URL:https://bbs.hupu.com/27255467.html 发布时间:2019-05-06 16:37 帖子来源:火箭专区
标题:[流言板]洛瑞:伦纳德的统治力可以和姚明相比 作者:第22頁無奈 URL:https://bbs.hupu.com/27253933.html 发布时间:2019-05-06 14:53 帖子来源:火箭专区
标题:蛋糕官宣!卧槽卢指导真的来啦!zt朗佐鲍尔频道 作者:火箭少女泰伦卢 URL:https://bbs.hupu.com/27255118.html 发布时间:2019-05-06 16:14 帖子来源:湖人专区
标题:谈谈我对欧文的认识 作者:队长皮尔斯 URL:https://bbs.hupu.com/27256486.html 发布时间:2019-05-06 17:55 帖子来源:凯尔特人区
标题:一年前的今天,詹姆斯高难度拋投绝杀猛龙 作者:那就湖人总冠军吧 URL:https://bbs.hupu.com/27254030.html 发布时间:2019-05-06 14:59 帖子来源:湖人专区
标题:塔图姆昨天凌晨三天被发现在赌场 作者:慈航道人 URL:https://bbs.hupu.com/27250195.html 发布时间:2019-05-06 11:05 帖子来源:凯尔特人区
标题:回顾一下17年季后赛首轮对阵灰熊,小卡在天王山之战上的精彩时刻 作者:就回忆你温柔 URL:https://bbs.hupu.com/27257346.html 发布时间:2019-05-06 19:00 帖子来源:猛龙专区
标题:身在井隅,心向璀璨,纳什维尔小船长——达里厄斯-加兰(照片,视频,球探报告,前景讨论) 作者:哈里狗 URL:https://bbs.hupu.com/27252850.html 发布时间:2019-05-06 13:40 帖子来源:NBA选秀-NCAA
标题:凤凰涅槃,浴火重生——琼泰-波特 Jontay Porter(照片,视频,球探报告,前景讨论) 作者:1946Celtics URL:https://bbs.hupu.com/27249783.html 发布时间:2019-05-06 10:47 帖子来源:NBA选秀-NCAA
标题:兄弟们卡文顿放pg不主攻算不算大个pg? 作者:马马马马努 URL:https://bbs.hupu.com/27253025.html 发布时间:2019-05-06 13:52 帖子来源:NBA2KOL2
标题:这个人把我逗笑了。但是又有点后悔 作者:乔丹CMJ URL:https://bbs.hupu.com/27252998.html 发布时间:2019-05-06 13:51 帖子来源:NBA2KOL2
标题:“3D or more”活力野猫——凯尔登-约翰逊 Keldon Johnson(照片,视频,球探报告,前景讨论) 作者:拉斯特蓝 URL:https://bbs.hupu.com/27249606.html 发布时间:2019-05-06 10:39 帖子来源:NBA选秀-NCAA

猜你喜欢

转载自blog.csdn.net/carson0408/article/details/89890687