美文网首页
Python爬虫系列12-微博数据抓取-是否又有瓜吃了?

Python爬虫系列12-微博数据抓取-是否又有瓜吃了?

作者: Tony_Pm | 来源:发表于2022-06-25 15:21 被阅读0次

    序言

    年少不经事,懂事已中年。在无知的年龄做了选择,在懂事的年纪承担后果,拿最好的年华,换最深刻的教训,哭着成长,笑着生活,这就是人生。
    生活从未变得轻松,只是你每一天的坚持,练就你一身本事,才让生活变得轻松。愿每一天每一个人诸事顺意,好运长相伴。

    实战

    今日的目标网站

    image.png

    第一步:目标 - 网址 - 分析 - 发起网络请求 - 得到网站数据

    image.png
    import requests
    
    cookies = {
        'SINAGLOBAL': '4164568015392.127.1641551947467',
        'SUBP': '0033WrSXqPxfM725Ws9jqgMF55529P9D9Wh2oFXSR-ZhVoD7mP8mQX5S5JpX5KMhUgL.Fo-71hqRSoMNSo-2dJLoIpYLxK-L1hqLBoMLxKnL1h.LBoeLxKML1-2L1hxJ9J9J',
        'UPSTREAM-SERVICE-ACCOUNT-WEIBO-COM': '5c9d4090953640c68ef0a73f01c3673b',
        'ALF': '1687088338',
        'SSOLoginState': '1655552337',
        'SCF': 'AmHV4ft38uoBMvGWUwHit4snm_fp21qN-LbyZIeqTtam1IRnq0gVDmexwVlu9Ce1cRXqyK7uMpELU4G6Do_3q08.',
        'SUB': '_2A25PqckDDeRhGeNO41QZ9inLzTmIHXVs3r3LrDV8PUNbmtANLWzBkW9NTt9Ar3W6_endjwecllkTKZB6gQhHxF8N',
        '_s_tentry': 'login.sina.com.cn',
        'UOR': ',,login.sina.com.cn',
        'Apache': '3914150919076.753.1655552339605',
        'ULV': '1655552339610:8:3:3:3914150919076.753.1655552339605:1655476178593',
        'PC_TOKEN': '49701743a5',
        'WBStorage': '4d96c54e|undefined',
    }
    
    headers = {
        'authority': 'service.account.weibo.com',
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'accept-language': 'zh-CN,zh;q=0.9',
        'cache-control': 'max-age=0','referer': 'https://service.account.weibo.com/?type=6&status=0',
        'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'sec-fetch-dest': 'document',
        'sec-fetch-mode': 'navigate',
        'sec-fetch-site': 'same-origin',
        'sec-fetch-user': '?1',
        'upgrade-insecure-requests': '1',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
    }
    
    params = {
        'type': '5',
        'status': '0',
    }
    # 请求网络  
    response = requests.get('https://service.account.weibo.com/', params=params, cookies=cookies, headers=headers)
    print(response.text)
    

    我们发现获取到的数据,非常的混乱,并且里面也没有显示任何的中文,不好辩解,比如网址的链接等。需要特殊的处理一下。


    image.png
    # 转码
    response = response.content.decode('unicode_escape')
    print(response)
    

    经过处理之后,数据结构一目了然。接下来把我们认为中要的数据进行提取就可以了。这里我采用的是re正则表达式,其他的方式也可以 大家可以自行探索一番。


    image.png

    第二步:解析 - 提 取有价值的数据内容

    点击每一个标题,会进入到该消息的详情页中。


    image.png
    image.png
    import re
    
    re_content = re.findall('<td><div class="m_table_tit"><a href="(.*?)" target="_blank">.*?</a></div></td>',response)
    print(re_content)
    
    image.png
    for tony in re_content:
        # + 拼接 链接
        url = 'https://service.account.weibo.com' + tony
        print(url)
    
    image.png
    image.png

    接下来重复第一步、第二步的操作,获取到详情页的数据;其他的数据以此类推,都是一样的思路;大家可以动手自己实践下。


    image.png

    第三步: 持久化保存数据

        for text in content:
            file = open('tony-微博.txt','a',encoding='utf-8')
            file.write(text+'\n')
    
    image.png

    在这个浮躁的时代;竟然还有人能坚持篇篇原创;

    如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。

    支持原创。感谢!

    相关文章

      网友评论

          本文标题:Python爬虫系列12-微博数据抓取-是否又有瓜吃了?

          本文链接:https://www.haomeiwen.com/subject/vrgvvrtx.html