python爬取上海旅游景点(详细)

2024-02-19 03:10

本文主要是介绍python爬取上海旅游景点(详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天爬取的是去哪儿网上的上海旅游景点,我们要爬取的是景点的经纬度、景点名称、点评数、星级、攻略提到的次数

爬取出来的数据如下(我只截取了前10条数据):

爬取的网址是:https://travel.qunar.com/p-cs299878-shanghai-jingdian

首先是导入工具库

用途:用requests对网址发出请求后,用BeautifulSoup解析网址

    

这里拓展一下:200 说明服务器已成功处理请求

                         302  说明服务器目前从不同位置的网页响应请求,类似跳转页面

                         404  说明服务器找不到请求的页面

通过requests对网址发出请求后,咱们可以使用r.text获取网页的html文档,密密麻麻一大堆~

接着咱们试一试使用BeautifulSoup解析网址,看看会产生什么结果

嗯~看起来好多了~在html中,h1表示最大的标题,h6表示最小的标题

咱们试试获取h1这个标题信息 ,可以看到我们获取到的是网页的标题

现在差不多知道requests和BeautifulSoup的用法啦,那么就开始爬取上海的旅游景点信息吧

登录网址后咱们可以发现这是列表页面,每个页面的网址都基本相同,唯一不同的就是所在的页面,如下,第二页和第三页不同的地方只有最后面2、3所在的位置

根据上面的信息,获取前3页的网址看看~这里我创建了一个空列表urllst,用来准备装生成的网址,用的是.append将生成的网址添加到列表

我们试试采集第一页的信息,可以看到下面截图中圈出来部分可以完全包含我们所要爬取的信息,所以可以从class为list_item clrfix的ul标签中获取信息,每一个li标签对应着每一个景点的信息

   

find_all()表示查找所有的标签

因为每个li对应的是每个景点的信息,我们来看看第一个景点的信息

如果我要获取的是这个景点的位置、名称、点评数、星级、攻略提到的次数,应该怎么办?

图中标注出来的标签就是对应的景点位置、攻略提到的次数、名称、点评数、星级

因为经纬度直接在li里的,是属性值,直接索引就可以了

景点名称属于元素,存储在class为cn_tit的span标签中,需要用find()函数找到标签,找到标签后,在其后面加.text就可以获取到景点的名称啦;攻略提到的次数是div标签中的,它的span标签其实是空的,只是嵌套在了div标签下;点评数是在class为comment_sum的span标签下;星级是在class为cur_star的span标签下的style中,找到星级标签后采用的是split对width:96%进行分割

下面代码使用了字典dic存储获取到的数据

我们获取到的是第一个景点的信息:

这个上海旅游景点的网站中每个网页有10个景点,那么如果我想要获取200个网页的信息呢

具体代码如下:

最后一共爬取了2000条数据

爬好的数据,将其转化成数据框的形式再保存为CSV的格式,然后就完成了~~~得到的结果就是开头我发的那张数据截图

我很黑,但我是小白是真的,所以我是往详细了写~这样后面遇到不懂的还能回头看看

完整代码奉上~~~

import requests
from bs4 import BeautifulSoupdata=[] #空列表,采集 到的数据都添加进去n=0urllst=[] 
for i in range(1,201):url='https://travel.qunar.com/p-cs299878-shanghai-jingdian-1-%s'%iurllst.append(url) #将生成的网址添加到列表中for u in urllst:r=requests.get(u)soup=BeautifulSoup(r.text,'lxml')ul=soup.find('ul',class_='list_item clrfix')li=ul.find_all('li')for l in li:n+=1dic={}dic['lat']=l['data-lat']dic['lng']=l['data-lng']dic['景点名称']=l.find('span',class_='cn_tit').text #获取元素:找到标签后,后面加.textdic['攻略提到的数量']=l.find('div',class_='strategy_sum').textdic['点评数']=l.find('div',class_='comment_sum').textdic['星级']=l.find('span',class_='cur_star')['style'].split(':')[-1]data.append(dic)print('成功采集%s条数据'%n)dataimport pandas as pd
df=pd.DataFrame(data)
df.to_csv('C:/Users/Administrator/Desktop/dd.csv')

 

这篇关于python爬取上海旅游景点(详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/723326

相关文章

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.