python爬取旅游信息_用Python爬取分析全国旅游数据-Go语言中文社区
前言:
Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首先附(fang)上(du)最令我垂涎欲滴的海鲜盛宴。
数据爬取:
最近几天朋友圈被大家的旅行足迹刷屏了,惊叹于那些把全国所有省基本走遍的朋友。与此同时,也萌生了写一篇旅行相关的内容,本次数据来源于一个对于爬虫十分友好的旅行攻略类网站:蚂蜂窝
PART1:获得城市编号
蚂蜂窝中的所有城市、景点以及其他的一些信息都有一个专属的5位数字编号,我们第一步要做的就是获取城市(直辖市+地级市)的编号,进行后续的进一步分析。
以上两个页面就是我们的城市编码来源,需要首先从目的地页面获得各省编码,之后进入各省城市列表获得编码。过程中需要Selenium进行动态数据爬取,部分代码如下:
deffind_cat_url(url):
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
req=request.Request(url,headers=headers)
html=urlopen(req)
bsObj=BeautifulSoup(html.read(),"html.parser")
bs=bsObj.find('div',attrs={'class':'hot-list clearfix'}).find_all('dt')
cat_url=[]
cat_name=[]
foriinrange(0,len(bs)):
forjinrange(0,len(bs[i].find_all('a'))):
cat_url.append(bs[i].find_all('a')[j].attrs['href'])
cat_name.append(bs[i].find_all('a')[j].text)
cat_url=['http://www.mafengwo.cn'+cat_url[i]foriinrange(0,len(cat_url))]
returncat_url
deffind_city_url(url_list):
city_name_list=[]
city_url_list=[]
foriinrange(0,len(url_list)):
driver=webdriver.Chrome()
driver.maximize_window()
url=url_list[i].replace('travel-scenic-spot/mafengwo','mdd/citylist')
driver.get(url)
whileTrue:
try:
time.sleep(2)
bs=BeautifulSoup(driver.page_source,'html.parser')
url_set=bs.find_all('a',attrs={'data-type':'目的地'})
city_name_list=city_name_list+[url_set[i].text.replace('n','').split()[0]foriinrange(0,len(url_set))]
city_url_list=city_url_list+[url_set[i].attrs['data-id']foriinrange(0,len(url_set))]
js="var q=document.documentElement.scrollTop=800"
driver.execute_script(js)
time.sleep(2)
driver.find_element_by_class_name('pg-next').click()
except:
break
driver.close()
returncity_name_list,city_url_list
url='http://www.mafengwo.cn/mdd/'
url_list=find_cat_url(url)
city_name_list,city_url_list=find_city_url(url_list)
city=pd.DataFrame({'city':city_name_list,'id':city_url_list})
PART2:获得城市信息
城市数据分别从以下几个页面获取:
(a)小吃页面
(b)景点页面
(c)标签页面
我们将每个城市获取数据的过程封装成函数,每次传入之前获得的城市编码,部分代码如下:
复制编辑
defget_city_info(city_name,city_code):
this_city_base=get_city_base(city_name,city_code)
this_city_jd=get_city_jd(city_name,city_code)
this_city_jd['city_name']=city_name
this_city_jd['total_city_yj']=this_city_base['total_city_yj']
try:
this_city_food=get_city_food(city_name,city_code)
this_city_food['city_name']=city_name
this_city_food['total_city_yj']=this_city_base['total_city_yj']
except:
this_city_food=pd.DataFrame()
returnthis_city_base,this_city_food,this_city_jd
defget_city_base(city_name,city_code):
url='http://www.mafengwo.cn/xc/'+str(city_code)+'/'
bsObj=get_static_url_content(url)
node=bsObj.find('div',{'class':'m-tags'}).find('div',{'class':'bd'}).find_all('a')
tag=[node[i].text.split()[0]foriinrange版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/bf02jgtrs00xktcx/article/details/81024314
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
python爬取旅游信息_用Python爬取分析全国旅游数据-Go语言中文社区相关推荐
- python查询高校信息_Python 3爬取全国高校基本信息-Go语言中文社区
最近接了一个单子,是爬取全国高校的基本信息,高校名字,高校层次,高校地区,招生办电话,招生办官网~ 镇楼图如下: 开发环境:python3.6(最新3.7也可以的) +pycharm 第三放库:req ...
- python爬取旅游信息_用Python爬取了全国近5000家旅游景点,分析国庆去哪玩
2020 国庆马上就要到了 我想今年大家在家都憋坏了 今年国庆和中秋刚好又是同一天,加起来有 8 天假 这么长的假期,当然是出去 玩玩玩! 但是每次长假期间,你有没有想起被人山人海支配的恐惧呢? 那么 ...
- 利用python爬取58同城简历数据_利用python爬取58同城简历数据-Go语言中文社区
利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用python里面的scrapy框架制作爬虫.但 ...
- python自动抓取指定信息_使用python自动转发抓取的网页信息
1.[代码][Python]代码 # -*- coding: utf-8 -*- from selenium import webdriver import time from email.heade ...
- python读取日志错误信息_使用Python将Exception异常错误堆栈信息写入日志文件
假设需要把发生异常错误的信息写入到log.txt日志文件中去: import traceback import logging logging.basicConfig(filename='log.tx ...
- python批量录入学生信息_利用Python实现学生信息管理系统的完整实例
项目要求: 读完题目,首先我们要确定程序思路 我们要全部通过类去实现 也就是 我们要实现管理员.学生.讲师.课程.教师五个类 管理员类 class Administration(object): de ...
- python字典输入学生信息_用Python创建一个学生字典并可以查询其中信息
展开全部 你可以试试这个---------------------------------------------------------- # -*- coding:UTF-8 -*- studen ...
- python读取微信群信息_利用Python转发微信群通知信息
案例:作为班长需要实时转发年级群发布的有关通知.文件到自己班的微信群,这种无脑的重复性工作适用于编写脚本自动帮忙处理. 准备:服务器(可选择阿里云学生服务器).itchat模块.一颗爱折腾的心 代码: ...
- python要背的单词_学Python必须背的42个常见单词,看看你都会吗?-Go语言中文社区...
adult [ˈædʌlt] 成年人 authentication [ɔːˌθentɪˈkeɪʃn] 身份验证.认证.鉴定 bit [bɪt] 稍微.小量.小块.一点 byte [baɪt] 字节.位 ...
最新文章
- 计算机科学家证明,为什么更大的神经网络可以做得更好
- 面试题 flex(二)
- Administer Service Cloud
- 也谈1+2+3+...+n的解答
- 数学--数论--HDU 6128 Inverse of sum (公式推导论)
- 敏捷制造:并不是你想像的矛盾体
- php5 mongodb,ThinkPHP5之Mongodb使用技巧
- flowable实现流程回退功能
- 计算机的复数英语怎么读,英语的复数怎么读
- bool类型数组转换成一个整数_Go 学习笔记 02 | 基本数据类型以及 byte 和 rune 类型...
- js验证家庭住址_手摇充电电筒、多功能组合剪刀……官方清单建议上海家庭储备13种应急物资...
- 用turtle库画五角星
- 转 - 受益终生的十大经典管理学定律
- 06.Android之消息机制问题
- centos7 中彻底卸载mysql
- 怎样让计算机默认记事本格式,电脑记事本怎么改格式
- 文件后缀名批量修改工具
- 使用OpenSSL库函数测试AES-CCM加密算法
- 时钟树综合CTS技术经验分享(高薪必备)
- 分组求和并排序python_【Python】如何对某一列自动分组,统计求和