python爬虫去哪儿网上爬取旅游景点14万条,可以做大数据分析的数据基础

简介: 本文介绍了使用Python编写的爬虫程序,成功从去哪儿网上爬取了14万条旅游景点信息,为大数据分析提供了数据基础。

从去哪儿网上爬取旅游景点的相关信息。主要包括以下几个步骤:

  1. 导入所需的库:BeautifulSoup用于解析网页内容,pandas用于处理数据,requests用于发送网络请求,re用于正则表达式匹配。

  2. 定义函数crawer_travel_url_content(url):根据给定的URL地址发送网络请求,获取网页内容并返回BeautifulSoup对象。

  3. 定义函数removenone(mylist):移除列表中的空值。

  4. 定义函数regnum(s):从字符串中提取数值。

  5. 定义函数crawer_travel_attraction_url(url):根据给定的城市URL,获取该城市旅游景点的总数maxnum。然后根据每页10条的规则,计算出需要爬取的页数page。遍历每一页的URL,解析页面内容,并提取景点的各种信息。将提取的信息写入CSV文件中。

  6. 定义景点信息的列名数组clums

  7. 创建CSV文件,并写入列名。

  8. 读取包含城市链接的CSV文件。

  9. 遍历城市链接列表,调用crawer_travel_attraction_url(url)函数进行爬取。

主要代码如下:

def crawer\_travel\_url\_content(url):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
    req = requests.get(url, headers=headers)
    content = req.text
    bsObj = BeautifulSoup(content, 'lxml')
    return bsObj
def removenone(mylist):#移除参数中空值的函数
    while '' in mylist:
        mylist.remove('')
    return mylist
def regnum(s):#提取爬取到的字符串中的数值
    mylist = re.findall(r'\[\\d+\\.\\d\]\*', s)
    mylist = removenone(mylist)
    return mylist
def crawer\_travel\_attraction\_url(url):
    # 该城市最大景点数
    maxnum = crawer\_travel\_url\_content(url + '-jingdian').find('p', {'class': 'nav\_result'}).find('span').text
    # 提取数字
    maxnum = int(''.join(\[x for x in maxnum if x.isdigit()\]))
    print(maxnum)

    url = url + '-jingdian-1-'

    # 这里取top10景点 每页10条 page从1开始
    page = math.ceil(maxnum/10)
    if page>200:
        page=200
    else:
        page = math.ceil(maxnum/10)
    for i in range(1, page):
        url1 = url + str(i)
        bsObj = crawer\_travel\_url\_content(url1)
        dw=bsObj.find\_all('div',class\_='ct')
        dq=bsObj.find\_all('li', {'class': 'item pull'})
        if len(dq)<3:
            sheng=dq\[1\].find('a').text
            city=dq\[1\].find('a').text
        else:
            sheng = dq\[1\].find('a').text
            city = dq\[2\].find('a').text
        for i in dw:
            cat = \[\]
            name=i.find('span',class\_='cn\_tit').text
            wenzhang\_num=i.find('div',class\_="strategy\_sum").text
            pls=i.find('div',class\_="comment\_sum").text
            pf=regnum(i.find('span',class\_="cur\_star").get('style'))\[0\]
            zhanbi=i.find('span',class\_='sum').text
            jisnjir=i.find('div',class\_='desbox').text
            cat.append(sheng)
            cat.append(city)
            cat.append(maxnum)
            cat.append(name)
            cat.append(wenzhang\_num)
            cat.append(pls)
            cat.append(pf)
            cat.append(zhanbi)
            cat.append(jisnjir)
            print(sheng,city,name,wenzhang\_num,pls,pf,zhanbi,jisnjir)
            with open('去哪儿网城市景点汇总1.csv', 'a', encoding='utf-8-sig', newline='') as f:
                a = csv.writer(f)
                a.writerow(cat)
                f.close()
        print(url1+'已采集完成')
    return True
import csv
clums = \['省份', '城市','景点数','景点名','文章数','评论数','评分','占比','简介'\]
with open('去哪儿网城市景点汇总1.csv', 'w', encoding='utf-8-sig', newline='') as f:
    a = csv.writer(f)
    a.writerow(clums)
    f.close()
df=pd.read\_csv('去哪儿网城市.csv',encoding='utf-8')
for i in df\['链接'\].tolist():
    try:
        crawer\_travel\_attraction\_url(i)
    except:
        pass

运行效果:

相关文章
|
23天前
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
10天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
15天前
|
数据采集 数据可视化 安全
基于python大数据的天气可视化分析预测系统
本研究探讨基于Python的天气预报数据可视化系统,旨在提升天气数据获取、分析与展示的效率与准确性。通过网络爬虫技术快速抓取实时天气数据,并运用数据可视化技术直观呈现天气变化趋势,为公众出行、农业生产及灾害预警提供科学支持,具有重要的现实意义与应用价值。
|
10天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
10天前
|
机器学习/深度学习 传感器 监控
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
46 1
|
10天前
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
47 1
|
22天前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
25天前
|
数据采集 搜索推荐 数据可视化
基于python大数据的商品数据可视化及推荐系统
本系统基于Python、Django与ECharts,构建大数据商品可视化及推荐平台。通过爬虫获取商品数据,利用可视化技术呈现销售趋势与用户行为,结合机器学习实现个性化推荐,助力电商精准营销与用户体验提升。
|
24天前
|
数据采集 数据可视化 数据挖掘
基于python大数据的nba球员可视化分析系统
本课题围绕NBA球员数据分析与可视化展开,探讨如何利用大数据与可视化技术提升篮球运动的表现评估与决策支持能力。研究涵盖数据采集、处理与可视化呈现,结合SQLite、Flask、Echarts等技术构建分析系统,助力球队训练、战术制定及球迷观赛体验提升。
|
19天前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。

推荐镜像

更多