java中的接口是类吗
391
2022-09-04
【Python技能树共建】pyspider框架的使用(python pyspider)
pyspider 实战案例微医挂号网专家团队数据
今天尝试使用一个新的爬虫库进行数据的爬取,这个库叫做pyspider,国人开发的,当然支持一下。
github地址: install pyspider
安装之后,启动 在CMD控制台里面敲入命令
pyspider
出现如下界面,代表运行成功,一般情况下,你的电脑如果没有安装 phantomjs 他会先给你安装一下。
接下来打开浏览器,访问地址输入 127.0.0.1:5000, 应该显示如下界面,就可以愉快的进行编码了~
3步创建一个项目
微医挂号网专家团队数据----库基本使用入门
这款工具的详细使用,给你提供一个非常好的博文,写的很完善了,我就不在赘述了。咱们直接进入到编码的部分。
微医挂号网专家团队数据----爬虫源码
我们要爬取的目标站点是微医挂号网专家团队数据 网页地址84页的时候,数据竟然开始重复了,应该是网站本身系统的问题,这个没有办法。
爬虫流程
获取总页数 循环爬取每页的数据
爬取总页数
在入口函数on_start的位置去爬取第一页数据,爬取成功之后调用index_page函数
from pyspider.libs.base_handler import * import pandas as pd class Handler(BaseHandler): crawl_config = { } @every(minutes=24 * 60) def on_start(self): self.crawl('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.json if 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('csv 文件里面
@config(priority=2) def detail_page(self, response): doctors = response.json data = doctors["data"]["list"] return data def on_result(self,result): if result: print("正在存储数据....") data = pd.DataFrame(result) data.to_csv("专家数据.csv", mode='a', header=False, encoding='utf_8_sig')
等着就可以了
微医挂号网专家团队数据----最后几步
Web UI 控制台上的 rate/burst 参数来调节速度,rate 是 每秒抓取的数量,burst 是并发的数量
写完啦~ 得到了 ·1000·多个专家团队。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~