kcrawler
A python crawler authored by Ken.
1. 安装
1.1 环境要求
python -V
pip install --upgrade pip
pip -V
1.2 查看最新版本
pip search kcrawler
1.3 初次安装
pip install kcrawler
pip install --index-url https://pypi.org/simple kcrawler
1.4 更新已有安装
pip install --upgrade kcrawler
pip install --upgrade --index-url https://pypi.org/simple kcrawler
1.5 卸载
pip uninstall -y kcrawler
2. 命令行调用
2.1 使用方式
使用 pip 安装成功后,会自动在系统搜索路径创建可执行程序:kcrawler
, kcanjuke
, kcjuejin
。
通常是 python
或 conda
安装目录下的 bin
子目录下,例如:/anaconda3/bin/kcrawler
。windows 平台会创建 .exe
文件。
kcrawler
是爬取所有网站应用的入口,命令执行格式如下:
kcrawler <webapp> [webapp-data] [--options]
等效于:
kc<webapp> [webapp-data] [--options]
例如:
kcrawler juejin books --url "https://..."
kcjuejin books --url "https://..."
2.2 使用示例
以 kcrawler <webapp> [webapp-data] [--options]
方式运行为例。
2.2.1 爬取掘金小册数据
执行如下命令:
kcrawler juejin book
命令执行成功,显示如下统计图表:
并将明细数据保存在当前目录下,同时保存 .csv
和 .xls
文件,文件名格式如下:
juejin_books_YYYY-MM-DD.csv
juejin_books_YYYY-MM-DD.xls
2.2.2 爬取掘金专栏阅读量
格式:
kcrawler juejin post --name <username> --limit 100 --url '<user_post_url>'
- name: 目标爬取用户的名称,可以自定义,仅仅用于区分不同用户,同时作为爬取数据保存的文件夹名称
- limit: 限制爬取最新专栏数
- url: 目标爬取用户的接口地址,这个参数真正决定了要爬取谁的专栏
url 获取方式如下:
为了快速体验爬取效果,也提供了 url 缺省情况下的支持,爬取用户 ken 的专栏:
kcrawler juejin post --name ken --limit 100
爬取明细数据,会在 ken
目录下,以爬取日期和时间命名,同时保存 .csv
文件和 .xls
文件。
2.2.3 指定城市爬取安居客小区房价
首先需要获取网站的 cookie
。获取方式参考《python 自动抓取分析房价数据——安居客版 》2.4 小节。
将 <anjuke_cookie>
替换成自己 cookie
,运行如下命令:
kcrawler anjuke --city shenzhen --limit 50 --cookie "<anjuke_cookie>"
也可以将 cookie
保存在当前目录下的 anjuke_cookie
(无后缀)文件中,运行如下命令:
kcrawler anjuke --city shenzhen --limit 50
命令成功运行成功后,会显示房价平均值,最大值,最小值,并绘制房价分布直方图,关闭直方图后,明细数据将保存在当前目录下,形如:anjuke_shenzhen_community_price_20xx-xx-xx.csv
。
获取其他城市的房价,只需将 city
参数改成安居客网站覆盖的城市拼音。可打开页面 https://www.anjuke.com/sy-city.html ,点击需要获取的城市,复制浏览器地址栏中城市对应的二级域名,如 beijing.anjuke.com 只取 beijing 作为 city 参数。
3. 导入 python 模块
3.1 Boss 接口
from kcrawler import Boss
boss = Boss()
boss_positions = boss.position()
boss_cities = boss.city()
boss_hotcities = boss.hotcity()
boss_industries = boss.industry()
boss_user_city = boss.userCity()
boss_expects = boss.expect()
jobs = boss.job(0, 1)
tencent_jobs = boss.queryjob(query='腾讯', city=101280600, industry=None, position=101301)
tencent_jobs = boss.queryjobpage(query='腾讯', city=101280600, industry=None, position=101301, page=2)
jobcard = boss.jobcard('3c2016bbf8413f3b1XR63t-1FVI~', '505ee74b-504b-4aea-921c-a3dc2016be80.f1:common-155-GroupA--157-GroupA.15')
Release history
https://pypi.org/project/kcrawler/#history
License
MIT
Copyright (c) 2019 kenblikylee