前言

本次目标
爬取去哪了湖南旅遊景點資訊
https://piao.qunar.com/ticket/list.htm?from=mpshouye_hotdest_more&keyword=%E6%B9%96%E5%8D%97&page=1
環境
- 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)
運作代碼,效果如下圖