天天看點

Python爬取去哪了旅遊景點資料

前言

Python爬取去哪了旅遊景點資料

本次目标

爬取去哪了湖南旅遊景點資訊

https://piao.qunar.com/ticket/list.htm?from=mpshouye_hotdest_more&keyword=%E6%B9%96%E5%8D%97&page=1      
Python爬取去哪了旅遊景點資料

環境

  • Python3.6
  • pycharm

爬蟲代碼

導入工具

import requests
import parsel
import csv
import time      

請求網站

url = 'https://piao.qunar.com/ticket/list_%E5%BC%A0%E5%AE%B6%E7%95%8C.html?from=mps_search_suggest_c&keyword=%E5%BC%A0%E5%AE%B6%E7%95%8C&page={}'.format(page)
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url=url, headers=headers)      

解析網站資料

for page in range(1, 11):
    time.sleep(1)
    for li in lis:
        title = li.css('.sight_item_caption a::attr(title)').get()  # 景區名字
        dit['景區名字'] = title
        level = li.css('.sight_item_info .level::text').get()   # 景區等級
        dit['景區等級'] = level
        area = li.css('.area a::attr(title)').get()     # 地區
        dit['地區'] = area
        address = li.css('.address span::attr(title)').get()  # 位址
        dit['位址'] = address
        string = li.css('.product_star_level em::attr(title)').get()    # 熱度
        star_level = float(string.strip('熱度: '))
        dit['熱度'] = star_level
        intro = li.css('.intro::attr(title)').get()  # 簡介
        dit['簡介'] = intro
        price = li.css('.sight_item_price em::text').get()   # 價格
        dit['價格'] = price
        hot_num = li.css('.hot_num::text').get()  # 月銷
        dit['月銷'] = hot_num
        csv_writer.writerow(dit)      

儲存資料

f = open('旅遊景點.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['景區名字', '景區等級', '地區', '位址', '熱度', '簡介', '價格', '月銷'])
csv_writer.writeheader()
print(dit)      

運作代碼,效果如下圖

Python爬取去哪了旅遊景點資料
Python爬取去哪了旅遊景點資料