拍脑袋决策法已经成为了过去,现在无论大小公司都开始从上到下的借助数据做为理性决策的武器。爬虫(Spider)做为一种小型的自动化数据收集脚本,在今天大数据导向的商业模式广泛应用。而Python语法简单,有着丰富的第三方库的支持,成为了开发爬虫的一个方便快捷的选择。
目录:
1. PC网页爬虫
2. H5网页爬虫
3. 微信小程序爬虫
4. 手机APP爬虫
趁着疫情学习了下Python,初步窥探了一下爬虫,把这一个月学习实验的成果做个小结。
经常爬取数据可能包括以下4个来源:
- PC版网页,包含静态网页、动态网页;
- 手机H5网页,如,很多微信公众号通过底部菜单链接的都是这类H5网页;
- 微信小程序,很多轻量级的应用都通过微信小程序与用户交互;
- 手机APP,部分应用只在其Android/iOS APP中提供完整的功能(数据);
以上4种场景的爬取难度逐级递增,下面逐一给出简单的爬取方案,分别针对健身领域的莱美、超猩、乐刻的数据进行爬取。
一、PC版网页爬虫
1. 目标场景
我选择了莱美官网为案例,爬取该网站上可供查询的认证教练、认证俱乐部信息。
http://www.lesmills.com.cn/
2. 场景分析
在浏览器中分析各个数据页的URL:
所有查询都不需要用户登录,真的是很厚道的网站。
3. 方案思路
- 使用requests库,可以直接抓取html代码;
- 使用BeautifulSoap(bs4)库,解析html、提取数据;
- 根据解析到的链接,继续请求二级详情页;
4. 关键代码
import requests
from bs4 import BeautifulSoup
# 分页请求HTML
for nPageCount in range(startPage, endPage + 1):
# 构造查询
sourceURL = "https://www.lesmills.com.cn/search/index.asp"
pars = {'Group': 2, 'page': nPageCount} # URL参数,Group=2 教练员,page查询分页
response = requests.get(sourceURL, params=pars, timeout=5)
# 提取教练信息
bsPage = BeautifulSoup(html, 'html.parser')
bsTable = bsPage.find_all("article", class_="topic-article-list__item")
# 具体html解析略,参考源代码
5. 爬取结果
有些网页用以上方法时,从response中得不到完整的html,只能看到一些js文件。这类网页就需要使用我们以下第二种方法了。
二、手机H5网页爬虫
请点击:<下一页>