码迷,mamicode.com
首页 > 其他好文 > 详细

第八天

时间:2019-07-22 23:58:15      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:nts   coding   response   编码格式   进制   tps   pen   dex   编码   

爬虫

import requests
import re

需要使用的库

requests =requests.get('https://ishuo.cn/') # 文本
data = requests.text
res = re.findall('<li class="list_li">(.*?)</li>',data)

res_list = {}
for i in res:
 content = re.findall('<div class="content">(.*?)</div>',i)[0]
 title = re.findall('<a href="/subject/.*?">(.*?)</a>',i)[0]
 desc = re.findall('</a>(04月.*?)</div>',i)[0]
 res_list[title]=(content,desc)


for  i in res_list.items():
    print(f'{i[0]:<30} | {i[1]}'+'\n')

使用requests.get(‘url’)获取网址

requests.text

re.findall(‘‘) 检索所需信息 将所需的用括号包起来 获取的数据为list 列表类型的数据

response = requests.get('http://www.nipic.com/design/acg/renwu/index.html?page=1') # 图片
data = response.text
res =re.findall('data-src="(.*?)" ',data)


for i in res:
   res_list = requests.get(i)
   res_content = res_list.content
   img_name = i.split('/')[-1]
   f = open(img_name, 'wb')
   f.write(res_content)

同等道理用re.findall()获取所需信息 得到你要的图片网址

使用requests.get() 重获信息 使用. content获取图片网址的二进制

open 打开文件

爬虫关键为找到你要的信息 在获取的源码中找到他 然后显示就行

import requests
import re
import jieba
import wordcloud
from imageio import imread
# 爬取数据
requests =requests.get('http://www.haha56.net/xiaohua/gushi/?tdsourcetag=s_pcqq_aiomsg')
requests.encoding='gb2312'  # 其数据编码格式为gb2312 应更改其编码格式不然会产生乱码
data = requests.text       # 获取的数据为文本
res = re.findall('<dd class="preview">(.*?)</dd>',data)

#  词云
bb=""
for i in res:
    bb=bb+str(i)+" "      # 词云要对字符串进行处理,所以应将数据先转换成字符串类型

mask = imread(r"C:\Users\XM\PycharmProjects\untitled\112.jpg")
w = wordcloud.WordCloud( width=1000,font_path=r"C:\Windows\Fonts\simhei",height=700,mask=mask,background_color='white')
data_jieba = jieba.lcut(bb)  # 切片
w.generate(" ".join(data_jieba))
w.to_file("pywcloud.png")

#  词频                    # 对数据进行处理排除不需要的数据
count_dict ={}
for i in data_jieba:
    if len(i)==1:
        continue
    if i=='...' :
        continue
    if i not in count_dict:
        count_dict[i]=1
    else:
        count_dict[i]+= 1

ls = list(count_dict.items())    # 列表的键值对
def func(i):
    return i[1]

ls.sort(key=func) 
ls.reverse()                     # 将数据从大到下排序
for i in ls[:10]:
    print(f'{i[0]:^7}{i[1]:^5}')  # 规格化输出

第八天

标签:nts   coding   response   编码格式   进制   tps   pen   dex   编码   

原文地址:https://www.cnblogs.com/xm-lucky/p/11229034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!