1. 微医挂号网专家团队数据----写在前面

今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下。

github地址: https://github.com/binux/pyspider
官方文档地址:http://docs.pyspider.org/en/latest/

安装起来是非常简单的

pip install pyspider 

安装之后,启动 在CMD控制台里面敲入命令

pyspider

出现如下界面,代表运行成功,一般情况下,你的电脑如果没有安装 phantomjs 他会先给你安装一下。

接下来打开浏览器,访问地址输入 127.0.0.1:5000, 应该显示如下界面,就可以愉快的进行编码了~

3步创建一个项目

2. 微医挂号网专家团队数据----库基本使用入门

这款工具的详细使用,给你提供一个非常好的博文,写的很完善了,我就不在赘述了。咱们直接进入到编码的部分。

https://blog.csdn.net/weixin_37947156/article/details/76495144

3. 微医挂号网专家团队数据----爬虫源码

我们要爬取的目标站点是微医挂号网专家团队数据 网页地址https://www.guahao.com/eteam/index

分析AJAX链接地址,寻找爬取规律

经过分析之后获取到的链接为 https://www.guahao.com/json/white/search/eteams?q=&dept=&page=2&cid=&pid=&_=1542794523454

其中page参数最重要,表示页码,实际测试中发现,当代码翻页到 84页的时候,数据竟然开始重复了,应该是网站本身系统的问题,这个没有办法。

爬虫流程

  1. 获取总页数
  2. 循环爬取每页的数据
爬取总页数

在入口函数on_start的位置去爬取第一页数据,爬取成功之后调用index_page函数

from pyspider.libs.base_handler import *
import pandas as pdclass Handler(BaseHandler):crawl_config = {}@every(minutes=24 * 60)def on_start(self):self.crawl('https://www.guahao.com/json/white/search/eteams?page=1', callback=self.index_page,validate_cert=False)

index_page函数用来获取页码总数,并且将所有待爬取的地址存放到self.crawl中,这个地方因为数据重复的原因,最终硬编码为84页数据了

    @config(age=10 * 24 * 60 * 60)def index_page(self, response):doctors = response.jsonif doctors:if doctors["data"]:page_count = doctors["data"]["pageCount"]#for page in range(1,page_count+1):for page in range(1,85):self.crawl('https://www.guahao.com/json/white/search/eteams?page={}'.format(page),callback=self.detail_page,validate_cert=False)

最后一步,解析数据,数据爬取完毕,存放到 csv 文件里面

    @config(priority=2)def detail_page(self, response):doctors = response.jsondata = doctors["data"]["list"]return datadef on_result(self,result):if result:print("正在存储数据....")data = pd.DataFrame(result)data.to_csv("专家数据.csv", mode='a', header=False, encoding='utf_8_sig')

完成的代码预览

回到主页面,此时看到任务列表显示了我们刚刚创建的任务,设置 status 为 running,然后点击 Run 按钮执行


执行完成后,点击 Results 按钮,进入到爬取结果的页面

等着就可以了

4. 微医挂号网专家团队数据----最后几步

  1. Web UI 控制台上的 rate/burst 参数来调节速度,rate 是 每秒抓取的数量,burst 是并发的数量

  1. pyspider 爬取完毕之后,你在点击run是不会在运行的。解决办法如下,停止 pyspider,找到下图的几个文件
    project.db 和 result.db 两个文件不要删除,删除其他文件即可。

写完啦~ 得到了 ·1000·多个专家团队。


我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1lpoi2p6fcu88

转载于:https://www.cnblogs.com/happymeng/p/10296977.html

Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider相关推荐

  1. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider

    1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. 安装起来是非常简单的 pip install pyspi ...

  2. python爬虫专家_Python爬虫入门教程:微医挂号网专家团队数据抓取pyspider

    1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. github地址: https://github.com ...

  3. python爬虫专家_Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider-阿里云开发者社区...

    1. 微医挂号网专家团队数据----写在前面 今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下. 安装起来是非常简单的 pip install pyspi ...

  4. 爬微医挂号网并把数据导入oracle数据库

    用pycharm,并非原创,参考马小酥的博客,python小白,初入爬虫 –原博主爬虫部分代码查阅相关资料尽力理解,oracle自己找的方法导入,记录学习过程 **参考:**马小酥博客:https:/ ...

  5. Python爬虫入门【4】:美空网未登录图片爬取

    美空网未登录图片----简介 上一篇写的时间有点长了,接下来继续把美空网的爬虫写完,这套教程中编写的爬虫在实际的工作中可能并不能给你增加多少有价值的技术点,因为它只是一套入门的教程,老鸟你自动绕过就可 ...

  6. Python爬虫入门教程27:爬取某电商平台数据内容并做数据可视化

    前言

  7. Python爬虫入门教程导航帖

    转载:梦想橡皮擦 https://blog.csdn.net/hihell/article/details/86106916 **Python爬虫入门教程导航,目标100篇** 本系列博客争取把爬虫入 ...

  8. Python爬虫入门教程 24-100 微医挂号网医生数据抓取

    1. 微医挂号网医生数据写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的 ...

  9. python爬虫和医学数据_Python爬虫入门教程 24-100 微医挂号网医生数据抓取

    1. 微医挂号网医生数据写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的 ...

最新文章

  1. 微服务注册中心如何承载大型系统的千万级访问?
  2. Flink的主要特点及与Spark的对比
  3. Visual Studio listView控件绑定SQL Server数据库并动态显示数据,调整列宽
  4. pcie1 4 速度_太阳系行星们谁转得最快?八大行星自转速度排行榜,地球排第五...
  5. rollup函数_Vue3同款打包工具Rollup常用配置
  6. leadshop开源商城系统
  7. phython拟合曲面方程_python数据关系型图表散点图系列曲面拟合图
  8. Android学习2--项目文件列表简单分析
  9. Android onTouchEvent方法
  10. 5G技术将如何改变我们的世界
  11. PRML第四章之分类的线性模型
  12. AD转换及其相关背景知识
  13. Error:Some file crunching failed, see logs for details Error:Execution failed for task ':app:mergeDe
  14. 产品分析报告 | 二手市场面临着什么痛点?
  15. matlab 飞机大战小游戏
  16. Line 14: Char 22: runtime error: signed integer overflow: 1000000000 * 9 cannot be represented
  17. [笔记]物化视图和普通视图
  18. Win7下的Linux通过Nat的VMnet8下的NAT方式进行上网
  19. 【老孙点评】古人读书十二法
  20. 5种方法完美解决android软键盘挡住输入框方法详解

热门文章

  1. RESTful最佳实践
  2. RMAN-06023: no backup or copy of datafile 6 found to restore
  3. VC++判断文件或文件夹是否存在(转)
  4. 装NOILinux的奇妙经历
  5. IP 层收发报文简要剖析4--ip 报文发送
  6. (4.28)for xml path 在合并拆分上的作用演示
  7. CenterOS防火墙操作
  8. 【JavaScript算法】---快速排序法
  9. Java中Javadoc的{@link}与@see的简单区别
  10. SpringMVC的上传和下载