python正则去掉base64的头部_Python爬虫爬取豆瓣TOP250和网易云歌单

这篇博客介绍了使用Python进行网络爬虫的实践,主要针对豆瓣TOP250书籍和网易云音乐歌单的抓取。通过设置请求头、使用BeautifulSoup解析HTML、正则表达式提取数据,以及存储数据到Excel。博主分享了遇到的问题,如头部信息处理、正则匹配不当、反爬机制等,并提供了子函数的功能分析和部分代码示例。
摘要由CSDN通过智能技术生成

python爬虫(网易云)笔记

  • 先推荐找一些视频资料学习一下,实在没有的话,又不舍得花钱,我这里有些资料,可以免费赠送。
  • 最后爬取的结果如下:

e471f15fa724b60777ec2fe235645760.png

53e711a9a48dae32273d8ac25930e067.png

基本流程

  • 准备工作
    • 查看页面整体html框架,分析标签
  • 获取数据
    • 写一个askurl函数获取整个页面内容,传入一个链接地址作为参数

一定注意:网址除去/和#不然会获取到没有有用信息的代码段并且会被反爬
(但其实去除符号之后得到了歌曲信息其他还是被加密了,自己分清楚哪些可以爬哪些不行,一定要根据自己代码爬出的页面去写后面的,而不是光看F12以后的页面元素)

    • urllib.Request生成请求 urllib.urlopen发送请求获取响应 read读取

注意头部信息处理

    • 设置异常处理加入异常捕获try except语句
except urllib.error.URLError as e:
        if hasattr(e, "code"):
            print(e.code)
        if hasattr(e, "reason"):  # 什么原因导致没有打印成功
            print(e.reason)    #打印出来可能会有404,500等错误
  • 逐一解析内容:利用正则表达式和页面解析库bs
在getdata函数中由于img标签的正则表达式的错误导致产生了很多多余的不要的信息
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-seeHQiex-1595850838299)(./}7JHYL5O0$GDL692DCFTI8.png)]
  • 保存数据:用xlwt保存到excel表格里

注意小点

  • 一些库的说明
    • bs4网页解析获取数据(爬完网页将数据进行拆分);
    • re正则表达式进行文字匹配(进行数据的提炼);
    • urllib.request,.error制定url获取网页数据(给网页就能爬);
    • xlwt进行excel操作(存到excel)
    • sqlite3进行SQLITE数据库操(存到数据库)
  • 发起请求:
    • urlopen方法可以实现最基本的请求的发起,但是如果要加入headers等信息,就可以用Request类来构造请求。此时要注意头部信息的空格的处理
  • 从爬取歌单界面进入每一个歌单内部,发现歌单的链接和歌曲的链接只是后面id后缀的值不同可以用列表将其保存再利用列表进入链接内部
  • 原本页面信息链接的符号多余或者一些http的省略要用拼串接上
    例如获取歌单链接时:data.append("https://music.163.com/"+link)
for i in range(0,70):
        a=datalist[i][0]
        a=a[0:22]+a[23:]  #除去多余的/
        baseurl2.append(a)
  • 几个正则表达式设置为全局变量
#70个歌单的链接
findLink=re.compile('<a class="msk" href="(.*?)" title="(.*?)"></a>')
#歌单名字
findAlbum=re.compile('<a class
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值