中国地广人不稀,旅游资源非常丰富,古文化遗址、抗战遗址、山川、河流等等,在选择目的地的时候,不少人都会非常纠结,不知道去哪更好。为了以后不再纠结,打算深度解析全国的旅游景点分布。
去哪儿网有着非常丰富的旅游信息,不但几乎涵盖了全国所有景点,而且使用去哪儿网购买景区门票的人也非常多,所以笔者将爬取去哪儿网全国 32 个省市的所有景点数据。(没有抓取香港和澳门的数据,这边的景点并没有分 5A、4A)
去哪儿网的门票服务中暂时还没有开通 API 服务,所以只能对网页解析爬取。要抓取的数据有:景点名、景区等级、地点、景区简述、价格、销量以及热度。
将需要的数据进行定位,一层一层解析,就可以把所需的全部内容抓取下来了。但并不是每一个景点的信息都是全的,所以笔者加了一个 try/except 进去,虽然代码有变长,但是整个程序变得更加健壮。最终,一共抓取了 41611 条景点信息。
在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
for i in s:
inf = {}
try:
inf['level'] = i.find('span', class_='level').text[0]
except Exception as e:
inf['level'] = '0'
try:
inf['price'] = i.find('span', class_='sight_item_price').find('em').text
except Exception as e:
inf['price'] = ''
try:
inf['name'] = i.find('a', class_='name').text
except Exception as e:
inf['name'] = ''
try:
inf['num'] = i.find('span', class_='hot_num').text
except Exception as e:
inf['num'] = ''
try:
inf['add_pro'] = i.find('span', class_='area').find('a').text.split('·')[0]
inf['add_city'] = i.find('span', class_='area').find('a').text.split('·')[1]
except Exception as e:
inf['add_pro'] = i.find('span', class_='area').find('a').text
inf['add_city'] = i.find('span', class_='area').find('a').text
try:
inf['hot'] = i.find('span', class_='product_star_level').find('em').get('title').split(':')[1]
except Exception as e:
inf['hot'] = ''
try:
inf['descri'] = i.find('