python soup歌词_python从入门到放弃篇35(BeautifulSoup库)爬取A神waiting for love歌词
今天,在研究BeautifulSoup库的使用方法和技巧,我看了一下BeautifulSoup库函数,觉得BeautifulSoup库没有lxml库的xpath函数那么好用,各有优势吧。
案例网址:https://zhidao.baidu.com/question/877231635748319892.html。
完整代码:
from bs4 import BeautifulSoup
import lxml
import urllib.request
import time
url = 'https://zhidao.baidu.com/question/877231635748319892.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.48'
}
request = urllib.request.Request(url,headers=headers)response = urllib.request.urlopen(request)
html = response.read().decode('gbk')
soup = BeautifulSoup(html,'lxml')
contents = soup.find_all('p')
for c in contents:
if c.string != None:
print(c.string)
with open(r'waiting_for_love.txt','a',encoding='utf-8') as f:
f.write(c.string+'\n')
time.sleep(1.5)
else:
continue
首先,我们要先去安装BeautifulSoup库(因为是第三方库,不是标准内置库),输入命令:
然后,正式开始我们的程序设计,导入会用到的库。这里我选择三个库联合使用,
我认为这样做会更好一点。
我们设置好url和请求报头,所以有:
url = 'https://zhidao.baidu.com/question/877231635748319892.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.48'
}
request = urllib.request.Request(url,headers=headers)
接着,我们要把设置好的url和请求报头作为urlopen函数的参数传入,并读取源代码,再解码,我们在解码前,先去查看它的编码方式,如下图:
所以有:
之后,因为我们这次主要使用BeautifulSoup,因此,设置soup,并将解码后的html传递给soup,然后,设置lxml解析库为参数,目的是为了加快解析速度。所以有:
接着,我们开始爬取A神的歌词吧。先去查看网页结构进行分析。
通过观察,我们发现大部分内容都在p标签中。所以,确定爬取目标开始设计。用find_all()函数找出所有p标签,得到的结果是一个列表,
如下图:
所以,我们要用for循环遍历,然后打印输出结果,
如下图:
我们会发现结果存在空值None,因此,我们要在程序上再改进一下,让空值不出现。所以有:
如下图:
下面,我们再重新观察一下网页结构,然后,我们发现还有另一种方法。但是,我个人不推荐这种方法,因为页面通常是变动的。我们直接去找到div框架的标签,找到它的属性ID,然后,输出这个div标签下的文本内容。所以有:
如下图:
这个方法有明显的缺陷,目前原因尚未清楚,出现了莫名其妙的数字。
我们既然爬取A神的歌词,就留个纪念吧,好歹也辛苦这么久了。修改代码,再加入时间库,控制爬行速度,所以有:
运行结果:
接着,我们去pycharm编辑器的路径下面,找到文件,打开文件看看,如下图:
后面还有很多内容,就不全部截图了,请大家见谅。
最后,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望指出和海涵。
python soup歌词_python从入门到放弃篇35(BeautifulSoup库)爬取A神waiting for love歌词相关推荐
- Python 爬虫篇-利用BeautifulSoup库爬取墨迹天气网的天气信息实例演示,调用墨迹天气api接口获取空气质量
安装方法: pip install BeautifulSoup4 BeautifulSoup 详细使用文档 墨迹天气抓取演示 墨迹天气没有提供专门的天气接口 api,但我们可以用 BeautifulS ...
- Python 爬虫进阶篇-利用beautifulsoup库爬取网页文章内容实战演示
我们以 fox新闻 网的文章来举例子,把整篇文章爬取出来. 首先是标题,通过结构可以看出来 class 为 article-header 的节点下的 h1 里的内容即是标题,通过 string 可以获 ...
- python爬取方式_Python 爬虫入门(三)—— 寻找合适的爬取策略
写爬虫之前,首先要明确爬取的数据.然后,思考从哪些地方可以获取这些数据.下面以一个实际案例来说明,怎么寻找一个好的爬虫策略.(代码仅供学习交流,切勿用作商业或其他有害行为) 1).方式一:直接爬取网站 ...
- python爬虫多线程书籍_Python爬虫入门【10】:电子书多线程爬取
最近想找几本电子书看看,就翻啊翻,然后呢,找到了一个 叫做 周读的网站 ,网站特别好,简单清爽,书籍很多,而且打开都是百度网盘可以直接下载,更新速度也还可以,于是乎,我给爬了.本篇文章学习即可,这么好 ...
- python 北上资金_python爬虫技术:北向资金数据自动爬取!
好久不见!今天我们继续python的话题啦.python现在势头凶得很,没事刷抖音.刷朋友圈.看公众号,弹出的广告总少不了python."python带你发家致富,财富自由!"广告 ...
- 利用Python中的BeautifulSoup库爬取豆瓣读书中书本信息
利用BeautifulSoup库,获取前250本图书的信息,需要爬取的信息包括书名.书名的URL链接.作者.出版社和出版时间.书本价格.评分和评论,把这些信息存到txt文件,要求将这些信息对齐,排列整 ...
- python爬取小说网站资源_利用python的requests和BeautifulSoup库爬取小说网站内容
1. 什么是Requests?html Requests是用Python语言编写的,基于urllib3来改写的,采用Apache2 Licensed 来源协议的HTTP库.python 它比urlli ...
- 利用Python中的BeautifulSoup库爬取安居客第一页信息
题目: 网址为https://beijing.anjuke.com/sale/, 利用BeautifulSoup库,爬取第1页的信息,具体信息如下:进入每个房源的页面,爬取小区名称.参考预算.发布时间 ...
- 使用Python requests和BeautifulSoup库爬取去哪儿网
功能说明:爬取去哪儿网城市下面若干条景点详细信息并将数据导入Excel表(使用xlwt库) 爬取去哪儿网的教程参考自 https://blog.csdn.net/gscsd_t/article/det ...
最新文章
- 性能测试之二——常用的性能测试策略
- 京东数据驱动下的个性化推荐
- 关于.NET 的网络信息,服务器端与用户端的信息
- 报名|腾讯技术开放日·5G技术专场
- 用python排序算法_Python - 八大排序算法
- Math.random()获取随机数
- Python程序控制结构
- ICCV 2019 | 华科提出对称限制的校正网络,显著改进场景文本识别
- JAVA的多态的优劣,向上转型,向下转型什么意思?
- 微信读书App来了 小伙伴们快去占榜吧
- yoyo跑_足球YOYO体测大揭秘 失去资格只需两次
- 16、Flutter Widget - PageView;
- 【专题】CSDN下载频道3月热门资源top100汇总
- 蓝桥杯十大常见天阶功法——炎之呼吸.叁之型.动态规划--(上篇)
- 为云而生,腾讯云服务器操作系统TencentOS内核正式开源
- 《Loy解说Eureka服务端源码(二)》
- ICTCLAS的JNI调用接口说明
- IDEA中enter键换行问题
- 将前端网页生成二维码
- css3切角文本框_CSS3+jQuery制作切角的Tabs
热门文章
- MySQL采用哪种数据模型_数据库的三种数据模型分别是什么
- 【分享rmzt:三国杀猛将游戏主题】
- mysql设置乐观锁_mysql数据库怎么设置乐观锁
- 关于html5中section标签与div标签的区别
- 计算机网络Sever服务器网络搭建实践(一)
- 最简单的RPC框架实现
- 使用 VaultWarden 搭建个人密码管理器 原先Bitwarden
- mockjs——mockjs定义、mockjs安装、mockjs使用、mockjs方法、mockjs语法、代码示例
- VS资源视图打不开,提示“加载失败” 怎么办?
- Apache绿色版 官网下载+安装(win7)