爬虫典型使用的库

tech2024-07-13  69

生成云图片所需要的库

一.wordcloud

原理:根据一个文本中一个词语频繁出现的频率而绘制词云 常规方法 配置对象参数:c=wordcloud.WordCloud(XXXX) 加载词云文本: c.generate(待分析的文本) 输出词云文件: c.to_file(“XX.png”)(可输出的格式有png和jpg) 配置对象参数 典型使用例子 def wordCloud_show(self): f = open('C:/Users/Administrator/PycharmProjects/practice2/novel.txt','r',encoding='utf-8') t = f.read() f.close() ls = jieba.lcut(t) txt = ' '.join(ls) w = wordcloud.WordCloud(font_path = 'c:\windows\Fonts\STZHONGS.TTF',width = 1000,height = 700,background_color = 'white') w.generate(txt) w.to_file('novelWordcloud.png')

二.jieba库

作用:将句子分解为词语 三种模式 jieba.lcut(s)#(精确模式:把文本精确的切分开,不存在冗余单词) #返回的是 #['中国','是','一个','国家'] jieba.lcut(s,cut_all = True)#(全模式) #['中国', '国是', '一个', '国家']即按照均等形式进行分解,返回的是均等的参数状况类 jieba.lcut_for_search(s) #即在jieba.lcut(s)切割的情况下,在进行一次切割

三.正则表达式库re

两个匹配命令 (两个语句常常结合一起使用)

re.findall(p,html),匹配出需要的字符串re.compile() 作用返回的是一个匹配对象(即匹配对象需要代结合匹配字符串思路类使用状况)内容匹配规则类r’内容 如 #匹配图片类 r'<img class="BDE_Image" src="([^"]+\.jpg)"' #即典型class名称与网页中的名称相关的特点 #图片匹配法类 reg = r'src="(.+?\.jpg)" pic_ext'#另外一种匹配方式 imgre = re.compile(reg) imglist = imgre.findall(html)#表示在整个网页中过滤出所有图片的地址,放在imglist中 #匹配小说类 r'<div style="clear:both;"></div>([\s\S]*) <div id="favoriteshow_3" style="display:none" align="center"></div>' #特殊匹配变量类 re.I(re.IGNORECASE): 忽略大小写 re.M(MULTILINE): 多行模式,改变’^’和’$’的行为 re.S(DOTALL): 点任意匹配模式,改变’.’的行为 re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定 re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性 re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释 #如两个匹配规则使用例子 x=re.compile(r'(http://video.*?mp4.*?mp4)',re.S) re.findall(匹配规则,x)#属于BeautifulSoup中的参数状况特点

四.请求库requests

①请求类 requests.get()//get请求形式 且注意对应请求类,需要获取请求的什么数据即代加该参数即可(即理解为response的控制理解) requests.post()//post请求方式类 拥有data数据的post

r1 = requests.post(“http://httpbin.org/post”, data=payload) 定制请求头形式的爬虫 headers = { #定制请求头中的User-Agent参数,当然也可以定制请求头中其他的参数 ‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36’, } response = requests.get(url=url,headers=headers)

②响应类

#获取请求的url print(‘请求的url:’+response.url) #获取响应状态码 print(response.status_code) #获取响应内容的编码格式,可以通过该属性修改响应的编码格式,直接以赋值的形式就可以修改响应的编码方式,一般出现乱码是我们需要进行设置 print(‘响应内容编码:’+response.encoding) #获取响应对象的响应头信息: print(response.headers) #获取字符串形式的响应内容,即是我们通过审查元素看到的HTML内容 print(response.text) #获取字节形式的响应内容,是bytes类型,一般我们请求图频、音频、视频需要用到字节流形式的响应内容 print(response.content)

③写入文件类

写文字类文件且保存   #将响应的内容写到我们指定的文件中 with open(’./baidu.html’,‘w’) as fp: fp.write(page_data) 写图片类文件 #获取响应的网页内容(该内容为图片,应该获取二进制类型数据) image_data = response.content

五.urrlib库

典型使用的语句 下载文件命令

urllib.request.urlretrieve()#直接将远程数据下载到本地 下载文件参数的方法思路 #例子 urllib.request.urlretrieve(each,filename,None)

六.os库

典型使用命令 os.getcwd()获得当前的路径 os.path.exists()判断文件是否存在的命令 os.makedirs()建立文件夹命令 os.listdir(path)目录列出命令

典型使用

if os.path.exists(folder_path) == False:#判断文件夹是否存在的命令 os.makedirs(folder_path)#创建文件夹的命令

七.解析网页库xpath与BeautifulSoup

BeautifulSoup() 使用方法

BeautifulSoup(response.content, 'html.parser') #即利用html.parser这个解析器进行解析response.content内容

xpath (典型导入与使用方法类,注意xpath在浏览器中copy位置的方法思路)

from lxml import html etree = html.etree#即网页树的意思 #解析数据的方法 data = requests.get(url=url,headers=headers).text s=etree.HTML(data)#即利用其进行解析网页,解析这个网页传过来的data数据 打印数据 即读取xpath数据的方法 x.path('xpath的路径')

八.获取图片BytesIO+PIL库

介绍 PIL库:图片处理的常见模块基本都具备与包含 典型使用:Image模块

常用 Image.open()#文件加载图像 Image.save()#保存图片文件 不常用 Im.format#图片格式(如jpg,jpeg类)信息 print(Im.format) im.mode#图片画质信息 print(im.mode) im.size #图片尺寸信息 print(im.size) im.convert(mode,matrix) #将一个“RGB”图像转换为“L”或者“RGB”图像 new_im = im.convert("L", rgb2xyz)

BytesIO 作用:操作二进制数据的作用 原因:对于f.write而言只可写字符串数据,因此对于进制数据类,就需要代利用byteslO进行转换后写入 联合使用例子

img_name = folder_path + str(index+1) + '.png' #注释1 image =Image.open(BytesIO(html.content)) #利用bytesIO获取图片 image.save('路径'+img_name)#利用pil里面的image模块对图像进行控制类

九.time库

典型使用命令

time.sleep(1)#延时语句类 #返回时间的两个命令 time.time() time.colock()
最新回复(0)