python3 从qunar.com抓取景点数据

需求分析

  • 抓取范围:自贡市的景点
  • 数据类型:景点名称,简要介绍,风景图片,地理位置,经纬度,开放时间,门票价格以及距离最近的美食(包括餐厅名称,经纬度,其它摘要)

页面数据分析

入口页面: 景点列表

该页面需要得到的数据: 景点详细信息url,其它景点列表页面url

  1. 景点摘要节点: 存放在 class=”list_item clrfix”的 ul中的li中
    python3 从qunar.com抓取景点数据_第1张图片
  2. 对li分析: 景点链接存放在 class=”titlink” 的a标签中
    景点链接
  3. 其它景点列表页面的url:class = “page” 的a标签中
    这里写图片描述
    这里写图片描述

景点介绍页面: 介绍页面

  • 景点名称:
    <h1 class="tit">自贡恐龙博物馆<span class="entit">span>h1>
  • 简要介绍:
"e_db_content_box">...
  • 经纬度:
"mapbox" latlng="29.401157247254,104.8338724919" data-beacon="map">...
  • 图片链接:
    python3 从qunar.com抓取景点数据_第2张图片

  • 地理位置:

<td class="td_l">
    <dl>
         <dt>地址:dt>
         <dd><span>自贡市大安区燊海井路四段268号 span>dd>
     dl> 
td>
  • 开放时间:

<td class="td_r">
    <dl class="m_desc_right_col">
        <dt>开放时间:dt>
        <dd><span>营业时间:8:30-17:30。<br />
         讲解服务时间:9:20-16:30。span>dd>
    dl> 
td>
  • 门票价格:
<div class="e_db_content_box e_db_content_dont_indent">
    <p>40元p>
div>
  • 附近美食:
    美食信息未直接显示在当前页面,需要找到美食信息页面url,并进行二重爬取
    美食信息url:
    data-beacon=’more_around_poi’ 的第二个a标签
    在从美食信息列表中获取 美食数据:
    class = “list_item clrfix” 的ul中的li
    在对每一项进行解析
    name: class=”cn_tit”
    latlng:

  • detail:class = “ct” 的div中

爬虫框架

基本组成:

url管理 + 页面下载 + 页面数据分析 + 数据导出

运行机制:

单线程顺序执行

引用的模块:

  • urllib.request
    用于下载页面数据
content = urllib.request.urlopen("http://www.*********").read()
//返回bytes对象
  • bs4.BeautifulSoup
    用于解析页面数据
soup = bs4.BeautifulSoup(content, 'html.parser', from_encoding='utf-8')

运行过程:

step1:得到指定数量景点url

Created with Raphaël 2.1.2 开始 设置起始url,需要的url数量 待爬取目录url用尽,或已达到上限? 结束 下载页面,并解析得到景点url,其它目录url yes no

step2: 通过景点详情页面,分析得到所需数据

Created with Raphaël 2.1.2 开始 待爬取景点url用尽? 保存景点数据到磁盘文件 结束 下载页面,解析得到景点数据,美食信息url 下载美食信息页面,分析得到当前景点附近美食信息 yes no

你可能感兴趣的:(Python学习,爬虫)