开发工具

  • Python版本:3.5.4
  • 相关模块:

爬虫:

import requests
from bs4 import BeautifulSoup

词云:

from wordcloud import WordCloud
import jieba
from os import path
import matplotlib.pyplot as plt

主要思路:

写了两个文件,具体如下:

1).数据爬取并生成txt文件的py文件

2).利用python相关的包生成词云相关操作的py文件

(2).遇到的问题以及解决方案:

wordcloud包的安装配置出现很大的问题,本机系统装载了两个python版本导致装载出现很多额外的问题。

  • 解决:在同学的帮助下安装了whl文件并删除了本机中的另一个python版本。

信息爬取过慢

  • 解决:暂未解决。爬取的页面预计超过100p,所以有关方面可能需要依赖别的技术。

使用演示

程序运行截图:

导出文档:

数据爬取并生成txt文件的py文件:

import requests
from bs4 import BeautifulSoup
'''
遇到不懂的问题?Python学习交流群:1136201545满足你的需求,资料都已经上传群文件,可以自行下载!
'''
#获取——————————————————————————————————————————
def catchSoup(url):#url='http://www.18ladys.com/post/buchong/'res=requests.get(url)res.encoding='utf-8'soup=BeautifulSoup(res.text,'html.parser')return soup#类型及其网页查找(首页查找)——————————————————————
def kindSearch(soup):herbKind=[]for new in soup.select('li'):if(new.text!='首页'):perKind=[]perKind.append(new.text)perKind.append(new.select('a')[0].attrs['href'])herbKind.append(perKind)return herbKind#药名查找(传入页面)——————————————————————————————————————————————————————
def nameSearch(soup):herbName=[]for new in soup.select('h3'):pername=new.text.split('_')[0].rstrip('图片').lstrip('\xa0').split('的功效')[0].split('(')[0].split('功效')[0].rstrip('的')herbName.append(pername)return herbName#分页及详细地址——————————————————————————————————————————————————————————
def perPage(soup):kindPage=[]add=[]for new in soup.select('.post.pagebar'):for detail in new.select('a'):d=[]d.append(detail.text)d.append(detail.attrs['href'])kindPage.append(d)kindPage.remove(kindPage[0])kindPage.remove(kindPage[-1])return kindPage
#爬取某一类的所有药名:kind是一个数字,照着kindSearch的结果输入。————————————
def herbDetail(kind):soup=catchSoup('http://www.18ladys.com/post/buchong/')#从首页开始kindName=kindSearch(soup)[kind][0]       #这一类草药的类名adds=kindSearch(soup)[kind][1]           #这一类草药的第一页地址totalRecord = []                         #这一类草药的所有名字print("正在爬取 "+str(kind)+'.'+kindName)totalRecord.append(nameSearch(catchSoup(adds)))#第一页的草药for add in perPage(catchSoup(adds)):           #第二页以及之后的草药pageAdd=add[1]totalRecord.append(nameSearch(catchSoup(pageAdd)))#print(nameSearch(catchSoup(pageAdd)))print(totalRecord)return totalRecord#===========================================================
#                      操作
#===========================================================
if __name__=="__main__":#获取类别名字及其网页地址—totalKind=kindSearch(catchSoup('http://www.18ladys.com/post/buchong/')) #首页#获取某一类中药的各种药名kind=0detailContent = ''while(kind<20):                #如果要爬取全网站请写41index = 1                  #前面的序列号指示totalRecord = []totalRecord=herbDetail(kind)if(kind==0):detailContent+='目录:\n'for i in totalKind:detailContent+=str(index)+'.'+i[0]+' 'index+=1kind+=1continueelse:detailContent+='\n'+str(totalKind[kind-1][0])+':\n'for i in totalRecord:k=0while k<len(i):detailContent+=str(index)+'.'+i[k]+' 'index+=1k+=1kind+=1f = open('herbDetail.txt', 'a+',encoding='utf-8')
f.write(detailContent)
f.close()

词云生成部分

from wordcloud import WordCloud
import jieba
from os import path
import matplotlib.pyplot as plt
'''
遇到不懂的问题?Python学习交流群:1136201545满足你的需求,资料都已经上传群文件,可以自行下载!
'''
comment_text = open('D:\\herbDetail.txt','r',encoding='utf-8').read()
cut_text = " ".join(jieba.cut(comment_text))
d = path.dirname(__file__)
cloud = WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",background_color='white',max_words=2000,max_font_size=40
)
word_cloud = cloud.generate(cut_text)
word_cloud.to_file("cloud4herb.jpg")
#显示词云图片===================================
plt.imshow(word_cloud)
plt.axis('off')
plt.show()

Python爬取中药网站信息并对其进行简单的分析相关推荐

  1. python爬取网上租房信息_用python爬取租房网站信息的代码

    自己在刚学习python时写的,中途遇到很多问题,查了很多资料,下面就是我爬取租房信息的代码: 链家的房租网站 两个导入的包 1.requests 用来过去网页内容 2.BeautifulSoup i ...

  2. python房子代码_用python爬取租房网站信息的代码

    自己在刚学习python时写的,中途遇到很多问题,查了很多资料,下面就是我爬取租房信息的代码: 链家的房租网站 两个导入的包 1.requests 用来过去网页内容 2.BeautifulSoup i ...

  3. python爬取电影网站信息并写入文件

    1 #https://www.domp4.com/list/6-1.html 2 import requests 3 import re 4 from bs4 import BeautifulSoup ...

  4. python爬取自如房间信息(一)

    使用python和selenium+Chrome Headless爬取自如房间信息,并将结果存储在MongoDB中.其中最麻烦的应该是每间房的价格,因为自如是用一张图片和offset来显示价格,所以不 ...

  5. 2021最新 python爬取12306列车信息自动抢票并自动识别验证码(三)购票篇

    项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否则后果自行 ...

  6. php爬取房源,用python爬取二手房交易信息并进行分析

    用python爬取二手房交易信息并分析第一步:编写爬虫 爬取某平台上海市十个区共900条二手房的交易信息#爬取上海十个区的二手房价信息 import requests from bs4 import ...

  7. 2021最新python爬取12306列车信息自动抢票并自动识别验证码

    项目描述 项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否 ...

  8. python爬取12306列车信息自动抢票并自动识别验证码(一)列车数据获取篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master].注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一 ...

  9. python爬取12306列车信息自动抢票并自动识别验证码(二)selenium登录验证篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时 ...

最新文章

  1. Struts2的拦截器只允许有权限用户访问action
  2. c++ fhog学习资料整理
  3. 网站在收录后还需要做什么?
  4. python图片-python实现读取并显示图片的两种方法
  5. k8s集群搭建教程(centos k8s搭建)
  6. 玩转u-boot之【初探环境变量env/bootcmd/bootargs】
  7. Java知识点总结(注解-内置注解)
  8. flutter绘图基础之三阶贝塞尔曲线cubicTo
  9. IS-IS详解(八)——深入探究IS-IS DIS选举机制
  10. 学完Linux之后学什么语言,学习C语言一段时间后我们能做什么?
  11. Atitit. 项目文档目录大纲 总集合  v2
  12. ajax提交form返回数据格式,ajaxSubmit 返回值
  13. hackintosh黑苹果_如何构建用于编码的Hackintosh
  14. R 学习 - 火山图
  15. 微信小程序的支付流程 —— 总结
  16. cannot import name ‘_validate_lengths的解决办法
  17. T检验三种方法的区分
  18. 怎么在pdf上编辑文字内容
  19. lajp linux教程,linux IMX6 汇编点亮一个LED灯
  20. Win10怎么关闭smartscreen筛选器检测功能?

热门文章

  1. 前端base64加密
  2. 检测恒温恒湿试验箱制冷循环故障?
  3. 线性代数中矩阵的秩, 行列式, 矩阵向量组线性无关, 矩阵可逆之间的一些逻辑关系
  4. 小辣椒安卓机器人无命令_小辣椒安卓手机开不了机怎么刷机
  5. Mac 连接外设键盘command冲突
  6. 计算机组成原理题目透析(1)
  7. 华住酒店泄露数据的暗网出售情况剖析
  8. 创新工场李开复:创新是水到渠成的事情
  9. 主谓宾定状补口诀及练习题
  10. location的方法