大数据 爬虫Python AI Sql

4种Python爬虫(1. PC网页,如,莱美)

2020-04-26  本文已影响0人  王磊皮皮

拍脑袋决策法已经成为了过去,现在无论大小公司都开始从上到下的借助数据做为理性决策的武器。爬虫(Spider)做为一种小型的自动化数据收集脚本,在今天大数据导向的商业模式广泛应用。而Python语法简单,有着丰富的第三方库的支持,成为了开发爬虫的一个方便快捷的选择。

目录:
1. PC网页爬虫
2. H5网页爬虫
3. 微信小程序爬虫
4. 手机APP爬虫

趁着疫情学习了下Python,初步窥探了一下爬虫,把这一个月学习实验的成果做个小结。

经常爬取数据可能包括以下4个来源:

  1. PC版网页,包含静态网页、动态网页;
  2. 手机H5网页,如,很多微信公众号通过底部菜单链接的都是这类H5网页;
  3. 微信小程序,很多轻量级的应用都通过微信小程序与用户交互;
  4. 手机APP,部分应用只在其Android/iOS APP中提供完整的功能(数据);
    以上4种场景的爬取难度逐级递增,下面逐一给出简单的爬取方案,分别针对健身领域的莱美、超猩、乐刻的数据进行爬取。

一、PC版网页爬虫

1. 目标场景

我选择了莱美官网为案例,爬取该网站上可供查询的认证教练、认证俱乐部信息。
http://www.lesmills.com.cn/

2. 场景分析

在浏览器中分析各个数据页的URL:

  1. 教练员列表:https://www.lesmills.com.cn/search/index.asp?page=12&Group=2
  1. 认证详情:https://www.lesmills.com.cn/search/clubs5037756.html

所有查询都不需要用户登录,真的是很厚道的网站。

3. 方案思路

  1. 使用requests库,可以直接抓取html代码;
  2. 使用BeautifulSoap(bs4)库,解析html、提取数据;
  3. 根据解析到的链接,继续请求二级详情页;

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网页爬虫

请点击:<下一页>

上一篇下一篇

猜你喜欢

热点阅读