Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python爬虫库_python爬虫实战百度云盘

python爬虫库_python爬虫实战百度云盘

作者头像
全栈程序员站长
发布于 2022-09-28 02:57:34
发布于 2022-09-28 02:57:34
49200
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君

如何使用爬虫与JieBa库制作词云

所需库的安装

所需第三方库为如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
import numpy as np
from PIL import Image

此网址内含大量python第三方库下载安装即可: 链接: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pandas.

第三方库安装教程见博客:

利用爬虫爬取目标

利用第三方库requests库,requests是一个常用的用于http请求的模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#获取http请求
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30) #获取html模块 timeout一般默认为30
        r.raise_for_status() #捕捉异常
        #r.encoding = 'utf-8'
        return r.text #http响应内容的字符串形式,即返回的页面内容
    except:
        return ""

requests 方法详解:

方法

属性

requests.get()

获取html的主要方法

requests.raise_for_status

捕捉异常如:网络连接错误,重定向错误等

requests.text

http响应内容的字符串形式,即返回的页面内容

r.encoding

从http header 中猜测的相应内容编码方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#爬取网页内容:
#url为目标网址
def getContent1(url):
html = getHTMLText(url)
# print(html)
soup = BeautifulSoup(html, "html.parser")
title = soup.select("div.LEFT > h1") #获取标题
print(title[0].get_text())
paras = soup.select("div.content-article > p.one-p") #获取内容
#将爬取到内容存入打印
for para in paras:
if len(para) > 0:
print(para.get_text())
print()
#将内容写入文件txt格式以用来制作词云
fo = open("text.txt", "w+",newline='', encoding='utf-8')
fo.writelines(title[0].get_text() + "\n")
for para in paras:
if len(para) > 0:
fo.writelines(para.get_text() + "\n")
fo.close()
article = { 

'Title': title[0].get_text(),
'Paragraph': paras,
}
print(article)

BeautifulSoup方法详解:

方法

说明

BeautifulSoup(html, “html.parser”)

Python的内置标准库、执行速度适中 、文档容错能力强

BeautifulSoup(markup, “lxml”)

速度快、文档容错能力强

BeautifulSoup(markup, “xml”)

速度快、唯一支持XML的解析器

soup.select()

通过标签名查找内容

html标签名查看 以腾讯新闻为例:

打开目标新闻界面按F12查看html源码

点击左上角红色箭头选取想要查看内容点击

注意最底下一行会显示目标标签

注: fo = open(“text.txt”, “w+”,newline=’’, encoding=‘utf-8’) 获取爬取到的内容写入文件时 打开文件时将encoding参数设置为utf-8防止写出格式错误形成乱码

利用JieBa库制作词云

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#打开文件进行文本处理
def read_deal_text():
with open("text.txt","r",newline='', encoding='utf-8') as f:
txt=f.read()
re_move=[",","。","",'\n','\xa0'] #去除文本中所有标点符号和空格
for i in re_move:
txt=txt.replace(i,"")
word=jieba.lcut(txt) #选择分词模式
#将处理好的文本写入txt文本
with open("txt_save.txt",'w',newline='', encoding='utf-8')as file:
for i in word:
file.write(str(i)+'')
print("文本处理完成并保存")
#利用WordCloud库制作词云
def img_grearte():
with open("txt_save.txt","r",newline='', encoding='utf-8')as file:
txt=file.read()
mask = np.array(Image.open("background.jpg")) #将目标背景图传入
word = WordCloud(background_color="white",width=400,height=400,max_words=110, max_font_size=80, mask=mask,contour_color='steelblue', font_path="simhei.ttf"
).generate(txt) #设置词云数量,字体,以及词量等
word.to_file('test.png') #将写好的词云存入
print("词云图片以保存")
plt.imshow(word)
plt.axis("off")
plt.show()

Jieba库使用方法

方法

属性

jieba.cut ()

方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型

jieba.lcut

返回list

jieba.Tokenizer(dictionary=DEFAULT_DICT)

新建自定义分词器

WordCloud库使用方法

方法

说明

wordcloud.to_file(filename)

将词云输出为图像文件

wordcloud.generate()

向WordCloud对象中加载文本txt

wordcloud.WordCloud()

配置对象参数

wordcloud参数设置

参数

描述

width

指定词云对象生成图片的宽度,默认400像素

height

指定词云对象生成图片的高度,默认200像素

min_font_size

指定词云中字体的最小字号,默认4号

max_font_size

指定词云中字体的最大字号,根据高度自动调节

font_step

指定词云中字体字号的步进间隔,默认为1

font_path

指定文体文件的路径,默认None

max_words

指定词云显示的最大单词数量,默认200

stop_words

指定词云的排除词列表,即不显示的单词列表

mask

指定词云形状,默认为长方形,需要引用imread()函数

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
import numpy as np
from PIL import Image
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
#r.encoding = 'utf-8'
return r.text
except:
return ""
def getContent1(url):
html = getHTMLText(url)
# print(html)
soup = BeautifulSoup(html, "html.parser")
title = soup.select("div.LEFT > h1")
print(title[0].get_text())
paras = soup.select("div.content-article > p.one-p")
for para in paras:
if len(para) > 0:
print(para.get_text())
print()
fo = open("text.txt", "w+",newline='', encoding='utf-8')
fo.writelines(title[0].get_text() + "\n")
for para in paras:
if len(para) > 0:
fo.writelines(para.get_text() + "\n")
fo.close()
article = { 

'Title': title[0].get_text(),
'Paragraph': paras,
}
print(article)
def getContent2(url):
html = getHTMLText(url)
# print(html)
soup = BeautifulSoup(html, "html.parser")
title = soup.select("path1")
print(title[0].get_text())
paras = soup.select("div.content-article > p.one-p")
for para in paras:
if len(para) > 0:
print(para.get_text())
print()
fo = open("text.txt", "w+",newline='', encoding='utf-8')
fo.writelines(title[0].get_text() + "\n")
for para in paras:
if len(para) > 0:
fo.writelines(para.get_text() + "\n")
fo.close()
article = { 

'Title': title[0].get_text(),
'Paragraph': paras,
}
print(article)
def read_deal_text():
with open("text.txt","r",newline='', encoding='utf-8') as f:
txt=f.read()
re_move=[",","。","",'\n','\xa0']
for i in re_move:
txt=txt.replace(i,"")
word=jieba.lcut(txt)
with open("txt_save.txt",'w',newline='', encoding='utf-8')as file:
for i in word:
file.write(str(i)+'')
print("文本处理完成并保存")
def img_grearte():
with open("txt_save.txt","r",newline='', encoding='utf-8')as file:
txt=file.read()
mask = np.array(Image.open("background.jpg"))
word = WordCloud(background_color="white",width=400,height=400,max_words=110, max_font_size=80, mask=mask,contour_color='steelblue', font_path="simhei.ttf"
).generate(txt)
word.to_file('test.png')
print("词云图片以保存")
plt.imshow(word)
plt.axis("off")
plt.show()
def main():
url1 = "https://new.qq.com/omn/20210222/20210222A0149000.html"
getContent1(url1)
read_deal_text()
img_grearte()
main()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193772.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月2日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python爬虫:URL管理器及其实现方式、网页下载器、网页解析器原理及其实现原理!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134735.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/18
9290
Python爬虫:URL管理器及其实现方式、网页下载器、网页解析器原理及其实现原理!
Python | 爬取农业农村部政策法规并绘制词云图
本文用作准备课堂分享,我们小组选的主题是产业融合,我负责第一部分背景。因为产业融合的政策性较强,为了更生动地展示政策文件内容,就爬取了农业农村部专题网站[1]上的政策法规,并基于 TF-IDF 算法提取关键词、统计词频和绘制词云图,以便丰富展示素材。
PyStaData
2020/07/21
4K1
Python | 爬取农业农村部政策法规并绘制词云图
新年贺词分析
快过年了,想起高中时每年语文老师都会朗读习近平主席的金句名言,以开阔同学们的眼界、猜测高考热点。想到这,心里感慨万千。最近也在复习爬虫的相关知识,于是爬取了三篇习大大的新年贺词,统计词频并生成词云,关注一波近年来我国的热点。
客怎眠qvq
2022/11/01
9310
新年贺词分析
Python爬虫系列:爬取小说并写入txt文件
本教程使用的单线程单本下载小说代码会不定期维护,最新源码及相关教程以CSDN博客为主,教程所说的多线程多本由于博主时间有限,暂时不做维护,仅作为一个教程供大家参考,感兴趣的朋友可以在此基础上做一个UI,便于下载;单线程单本代码见文末或码云>>get_one_txt.py文件,以下是维护日志:
全栈程序员站长
2022/09/02
4.5K0
爬取bilibili的弹幕制作词云
爬取哔哩哔哩的弹幕,http://comment.bilibili.com/6315651.xml
andrew_a
2019/07/30
9780
爬取bilibili的弹幕制作词云
Python爬虫之六:智联招聘进阶版
运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器
王强
2018/08/09
1.2K0
Python爬虫之六:智联招聘进阶版
python爬虫入门_在百度搜索手机归属地
欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/
yifei_
2022/11/14
4060
Python数据可视化:啥是佩奇
网址:http://comment.bilibili.com/72036817.xml
数据森麟
2019/09/29
3830
Python数据可视化:啥是佩奇
《你好,李焕英》爆红,Python爬虫+数据分析告你票房为什么这么高?
从小品演员再到导演,贾玲处女作《你好李焕英》,为何能这么火?接下来荣仔带你运用Python借助电影网站从各个角度剖析这部电影喜得高票房的原因。
荣仔_最靓的仔
2022/01/05
6950
《你好,李焕英》爆红,Python爬虫+数据分析告你票房为什么这么高?
Python爬虫与数据可视化:构建完整的数据采集与分析流程
Python爬虫是一种自动化的数据采集工具,它可以模拟浏览器行为,访问网页并提取所需信息。Python爬虫的实现通常涉及以下几个步骤:
小白学大数据
2024/07/02
2470
我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章
最近系统地学习了正则表达式,发现正则表达式最大的应用之一——网络爬虫之前一直没有涉猎,遂借此契机顺带写一个爬虫的demo备用。选择对象是CSDN排行榜前100用户,各自按访问量从高到低排序的前20篇文章,使用一些简单的数据分析手段看看技术热点,方便今后拓宽技术栈。
润森
2022/08/18
3910
我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章
python爬虫隔一段时间一乐之海子的诗
每隔一段时间(一周到一个月)拿出1到2天来做一个好玩的东西,不求回报,只为快感。 前两天刚买了一本电子书《海子的诗》,晚上读了快一半,好多诗里面都提及了麦子和村庄。想到可以对海子的所有的诗来个词频分析,顺便做一个词云图片。
有福
2018/08/28
3570
python爬虫隔一段时间一乐之海子的诗
Python文本挖掘:知乎网友如何评价《人民的名义》
文本分析使用愈来愈广泛,包括对新闻、电视剧、书籍、评论等等方面的文本挖掘并进行分析,可以深入找到表面文字看不到的细节。 介于《人民的名义》这部剧这么火,本人以此为基础,通过对知乎上网友提出的问题进行爬取,并搜集到每一问题的关注、浏览数,进行分析。在未登录的情况下,找到知乎——《人民的名义》主题网页下的等待回答——全部问题(见下图),时间截止到2017年4月15日,地址为:https://www.zhihu.com/topic/20047590/questions 。 (在登录状态下,可以显示更多信息,但
机器学习AI算法工程
2018/03/14
1.1K0
Python文本挖掘:知乎网友如何评价《人民的名义》
Python爬取分析全网最硬核粽子(附源码)
上周抽书的中奖昵称为【麻瓜】,请24小时候之内来联系我。本文在看转发依然抽一本书,本周日开奖哦
行哥玩Python
2020/07/14
5440
用python实现一个豆瓣通用爬虫(登陆、爬取、可视化分析)
在本人上的一门课中,老师对每个小组有个任务要求,介绍和完成一个小模块、工具知识的使用。然而我所在的组刚好遇到的是python爬虫的小课题。
bigsai
2020/11/03
2.7K0
用python实现一个豆瓣通用爬虫(登陆、爬取、可视化分析)
利用Python爬取百度百科词条并生成词云图
在这个信息爆炸的时代,数据可视化成为了一种有效的信息传递方式。词云图以其独特的视觉冲击力和简洁的信息表达方式,成为数据可视化中的一种流行形式。本文将介绍如何使用Python编程语言,结合几个强大的库,来爬取百度百科的词条内容,并生成相应的词云图。
LucianaiB
2024/12/25
1350
利用Python爬取百度百科词条并生成词云图
Python3爬虫数据清理分析
生成词云我们需要用到几个库: pip install numoy matplotlib wordcloud Pillow jieba
全栈工程师修炼指南
2020/10/23
4680
Python3爬虫数据清理分析
分析B站弹幕,川普同志暴露的那一天,没有一个鬼畜up是无辜的
B站作为一个弹幕视频网站,有着所谓的弹幕文化,那么接下来我们看看,一个视频中出现最多的弹幕是什么?
松鼠爱吃饼干
2020/09/15
4820
分析B站弹幕,川普同志暴露的那一天,没有一个鬼畜up是无辜的
Python爬虫实战:从零到一构建数据采集系统
在大数据时代,数据采集是开发者的必备技能之一,而Python凭借其简洁的语法和丰富的库(如requests、BeautifulSoup)成为爬虫开发的首选语言。本文将从零开始,带你一步步构建一个简单的网页数据采集系统,爬取目标网站的数据并保存为CSV文件。无论是新手还是有经验的开发者,都能从中收获实用技巧。欢迎在评论区分享你的爬虫经验!
DevKevin
2025/02/23
2970
python爬取电视剧情并分析角色戏份
第一集的链接:https://www.jingdianlaoge.com/news/10_3829_1.htm第三十集的链接:https://www.jingdianlaoge.com/news/10_3829_30.htm数据猿发现,每一集仅数字改变,所以只需要在代码里枚举集数构造到链接里,即可实现爬取全部剧情网页。
数据森麟
2021/03/09
5480
python爬取电视剧情并分析角色戏份
推荐阅读
相关推荐
Python爬虫:URL管理器及其实现方式、网页下载器、网页解析器原理及其实现原理!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验