前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
海贼王最新漫画图片_海贼王漫画52pk
1.http://kanbook.net/328 2.爬取字段标题、页数、herf后缀 并存进到json
全栈程序员站长
2022/09/25
3710
海贼王最新漫画图片_海贼王漫画52pk
用Python搭建一个简单的代理池
这里记得一定要设置随机选取headers以及睡眠时间,因为我就没有设置,然后就被封了...
小F
2020/10/09
1K0
用Python搭建一个简单的代理池
Python爬取哔哩哔哩(bilibili)视频
本篇文章主要给大家讲解下如实使用python 爬取哔哩哔哩中的视频,首先我是一名大数据开发工程师,爬虫只是我的一个业余爱好,喜欢爬虫的小伙伴可以一起交流。好了多了就不多说了喜欢的朋有可以收藏,转发请复原文链接谢谢。
大数据老哥
2021/02/04
2.7K1
Python爬取哔哩哔哩(bilibili)视频
Python3网络爬虫(十):这个帅哥、肌肉男横行的世界(爬取帅哥图)
本文通过分析爬虫技术的实现原理,讲解了如何爬取图片链接,并提供了相关代码。
Jack_Cui
2018/01/08
1.1K0
Python3网络爬虫(十):这个帅哥、肌肉男横行的世界(爬取帅哥图)
总说手机没有“好壁纸”,Python一次性抓取500张“美女”图片,够不够用!
编辑 | JackTian 来源 | 杰哥的IT之旅(ID:Jake_Internet) 转载请联系授权(微信ID:Hc220066)
杰哥的IT之旅
2020/09/22
6090
总说手机没有“好壁纸”,Python一次性抓取500张“美女”图片,够不够用!
Scrapy爬取知乎------配置代理IP和UA
爬取知乎,如果想大量并发的话的就必须配置代理IP。因为知乎的反爬策略就是并发过大就会限制你的爬虫,页面会自动重定向到验证码页面。所以防止你的爬虫被禁,设置个代理和UA还是很有必要的。
andrew_a
2019/07/30
9850
One Piece 海贼王动漫壁纸 Python 爬取!
当然需要注意的是,首页的列表页即为入口页,构造访问路径的时候用一个判断处理就可以实现了!
二爷
2021/11/12
5620
One Piece 海贼王动漫壁纸 Python 爬取!
python网络爬虫(8)多媒体文件抽取
回调函数中,count表示已下载的数据块,size数据块大小,total表示总大小。
嘘、小点声
2019/07/31
4280
Python爬虫入门教程 5-100 27270图片爬取
今天继续爬取一个网站,http://www.27270.com/ent/meinvtupian/ 这个网站具备反爬,so我们下载的代码有些地方处理的也不是很到位,大家重点学习思路,有啥建议可以在评论的地方跟我说说。
梦想橡皮擦
2019/01/28
1.4K1
Python爬虫入门教程 5-100 27270图片爬取
scrapy之user-agent池
常见的反爬策略有很多,今天我们一起跟随小省开始,ua的反爬之旅,咳咳咳,敲黑板喽!
shengjk1
2018/10/24
1.9K0
Python爬虫实战 批量下载高清美女图片
彼岸图网站里有大量的高清图片素材和壁纸,并且可以免费下载,读者也可以根据自己需要爬取其他类型图片,方法是类似的,本文通过python爬虫批量下载网站里的高清美女图片,熟悉python写爬虫的基本方法:发送请求、获取响应、解析并提取数据、保存到本地。
叶庭云
2020/09/17
6.9K0
Python爬虫实战  批量下载高清美女图片
Python 代理爬取网站数据
代理IP通过https://www.kuaidaili.com/free/ 获取,我使用的的是http 协议的代理。根据自己需求选择http或者https 协议的页面。
Lansonli
2021/10/09
6800
使用 Python 伪造数据
0 前言 某些时刻,因为个人数据不想泄露出去,所以需要伪造一下数据;也有使用爬虫的时候需要换一下 user agent ,一个用到旧会被发现,最后就是被封结尾。 运行环境是 Python3, Win10,编译器是 Pycharm。 1 个人数据 使用的是 faker 这个包,安装的过程直接省去。下面这段代码是生成简单的个人信息。 语言那可以自己选择,注释那只给出了常用的语言。 1.1 自己选择需要的数据 from faker import Faker fake = Faker('zh_CN') #
伪君子
2018/04/17
8750
使用 Python 伪造数据
Scrapy之设置随机User-Agent和IP代理
大多数情况下,网站都会根据我们的请求头信息来区分你是不是一个爬虫程序,如果一旦识别出这是一个爬虫程序,很容易就会拒绝我们的请求,因此我们需要给我们的爬虫手动添加请求头信息,来模拟浏览器的行为,但是当我们需要大量的爬取某一个网站的时候,一直使用同一个User-Agent显然也是不够的,因此,我们本节的内容就是学习在scrapy中设置随机的User-Agent。Scrapy中设置随机User-Agent是通过下载器中间件(Downloader Middleware)来实现的。
菲宇
2022/05/06
1.2K0
Scrapy之设置随机User-Agent和IP代理
Python 简单应对反爬虫
现在我们介绍的是不花钱的免费代理IP池。原理很简单,大家去百度或者谷歌搜索免费代理IP总能搜到几个可用的免费代理IP,有些是付费代理IP网站免费放出一两个来给大家试用的,但是一两个代理IP还是不够用的,至少得有十几个才够我们轮换使用,这时候就有好心人将全网大部分释放免费代理IP的网站给爬了,然后设定一个定时检查器,不断检查这些免费IP是否可用,不能用的就移除,能用的保留,相当于维护了一个可用IP池,这样每次爬虫发起请求时,就从IP池取一个使用。
arcticfox
2019/06/26
9320
python爬虫实例
参考: https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#find-all
cuijianzhe
2022/06/14
5570
python爬虫实例
Python爬虫源码,Behance 作品图片及内容采集爬虫附工具脚本!
Behance 网站是设计师灵感必备网站,想要设计作品必先学会借鉴/抄袭/白嫖,可惜这个网站需要访问国外网站才能访问,对于国人不甚友好,甚至还出现了删号,渣渣狗得很!
二爷
2023/09/15
5530
Python爬虫源码,Behance 作品图片及内容采集爬虫附工具脚本!
小爬虫之爬取豆瓣电影排行榜1.技术路线2.任务3.分析4.运行结果5.源码
1.技术路线 python 3.6.0 scrapy 1.4.0 2.任务 爬取豆瓣电影排行榜电影相关信息 2.1查看豆瓣的robots User-agent: * Disallow: /subject_search Disallow: /amazon_search Disallow: /search Disallow: /group/search Disallow: /event/search Disallow: /celebrities/search Disallow: /location/dram
JasonhavenDai
2018/04/11
7970
小爬虫之爬取豆瓣电影排行榜1.技术路线2.任务3.分析4.运行结果5.源码
Python 爬虫,peca 网站作品信息采集爬虫源码
“我看见一个男人,前几年他无忧无虑,逍遥自在,现在他,一身酒味,两眼无光,满脸憔悴,我很想心疼他一下,于是我伸手摸了一下镜子”
二爷
2023/12/14
1680
Python 爬虫,peca 网站作品信息采集爬虫源码
整理ING
os.path.exists(img_name)(判断图片是否已经存在,如果存在就跳过) 很好的一篇爬虫实例:先保存下 用MongoDB数据库记录已下载过的地址 使用PyMongo模块 直接代码:代码网址:http://blog.csdn.net/xiexiecm/article/details/59029912 主程序: #导入需要的包 from bs4 import BeautifulSoup   import os   from BackClimb import down   from py
学到老
2018/03/19
6450
推荐阅读
相关推荐
海贼王最新漫画图片_海贼王漫画52pk
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验