Python非直接爬取网易云热评墙|不太完美|保存为文本文件

本文介绍了使用Python间接爬取网易云热评墙的过程,通过第三方网站获取热评,并记录在文本文档中。过程中遇到HTTPError问题及Python字符串处理错误,最终顺利实现爬取并分享了代码。文章结尾分享了爬取到的部分金句。
摘要由CSDN通过智能技术生成

Python间接爬取网易云热评墙
做人啊,最要紧的是开心 你饿不饿,我去给你煮碗面 其实我不想给你煮面我只是想见你一面 --来自网易云音乐《问你是否跟我走》

1.前言
感觉网易云热评墙里面有好多金句啊,就超级带感的(复制到说说里绝对高逼格,哈哈),真的很佩服能写出这些句子的人啊,很有趣,所以嘞,从今天开始我也要学习做一个有趣的人,记记背背咯。结果的文本文档长这样:
文本文档
2.过程
因为网易云热评墙只能通过手机客户端->云村…里面得到,电脑网页上无,我就找到了第三方网站网易云热评墙-这个故事从未停止上面爬取,其实我很怀疑这个网站上的就是从热评墙上爬下来的,很想知道他们怎么做的哩(不然我总感觉自己做坏事了,我爬他,他爬它…)。无所谓了,多思无益。
在这里坦白一件事,我写代码的时候不是闭卷的,我会参考之前的代码(捂脸),因为记不得一些包的名字还有函数名之类的(好了,我就是在找借口)。反正这次参考之前代码,出现了一些问题(我也算是知错就改,不断进步的嘛)。
(1)urllib.urlopen报HTTPError
错误的代码:

html=urllib.request.urlopen(url).read()
soup=bs(html,'html.parser',from_encoding="utf-8")

正确的代码(这里User-Agent我用的别人的):

 req=urllib.request.Request(url)
 req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")
 html=urllib.request.urlopen(req).read()  
 soup=bs(html,'html.parser',from_encoding="utf-8")

还是多加参数吧,相互信任的基础
(2)str.trim()报错
我就想去掉字符串两端的空格嘛,然后用了昨天java的trim()函数,我是脑袋被榴莲砸了吧,这是python啊,得用strip(),我不解释了,是我的锅

3.代码

import urllib
import time
from bs4 import BeautifulSoup as bs

f=open("D:\\cs\\python\\summer\\wwyrp.txt",'w')
def get_content(url):
    req=urllib.request.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")
    html=urllib.request.urlopen(req).read()
    #print(html)
    soup=bs(html,'html.parser',from_encoding="utf-8")
    try:
        for each in soup.find_all("article",{"class":"meta"}):
            name=each.find("h2").get_text()
            #print(name)
            f.write(name+'\n')
            content=each.find("main").get_text().strip()
            #print(content)
            f.write(content+'\n')
            p_time=each.find("span",{"class":"time"}).get_text()
            #print(p_time)
            f.write(p_time+'\n')
            f.write("------------------------------------------"+'\n')
            time.sleep(0.05)
    except:
        print("error")
        
def main():
    base_url="https://www.musicbooks.cn/"
    get_content(base_url)
    for i in range(2,10):
        url="https://www.musicbooks.cn/page/"+str(i)+'/'
        get_content(url)
    f.close()

main()

4.总结
总体来说还挺顺利的,看着这些句子,还挺致郁(治愈)的,我相信我儿时的梦想(成为杀马特贵族)已经离我越来越远,现在我想成为一个有趣的人,口吐芬芳,手有余香,时不时说些网易云热评墙上的金句(真是个文化人哩)。
从此寻花问柳,闭口不谈一生厮守。从此红灯绿酒,再也不想牵谁的手。从此人海漂流,闭口不谈爱到白头。从此单打独斗,再也不会彻夜泪流。从此放下离愁,生生世世酒敬自由。从此心中无情人,只把父母牵挂在心头。(每天一句,从我做起)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值