python3 从qunar.com抓取景点数据

需求分析

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

页面数据分析

入口页面: 景点列表

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

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

景点介绍页面: 介绍页面

  • 景点名称:
    <h1 class="tit">自贡恐龙博物馆<span class="entit"></span></h1>
  • 简要介绍:
<div class="e_db_content_box">...</div>
  • 经纬度:
<div class="mapbox" latlng="29.401157247254,104.8338724919" data-beacon="map">...</div>
  • 图片链接:
    这里写图片描述

  • 地理位置:

<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: <li class="item" data-lat="29.398821" data-lng="104.830849">
    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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值