1. 程式人生 > 其它 >Python:晚上把附近的足浴店都給爬了一遍,好兄弟真不錯

Python:晚上把附近的足浴店都給爬了一遍,好兄弟真不錯

兄弟們,我來了!今天整個好玩的,你們肯定喜歡~

咱們上班累了,不得好好犒勞一下自己,是吧,於是我整了一手爬取附近洗jio的店子,浴皇大帝們,衝鴨!

很多人學習python,不知道從何學起。

很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。

很多已經做案例的人,卻不知道如何去學習更加高深的知識。

那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!

QQ群:701698587

歡迎加入,一起討論 一起學習!


話不多說,衝!兄弟們,都是正規的 正規的!

用的環境是

python 3.8 直譯器
pycharm 編輯器

用的大多數的知識點 都是屬於基礎的知識點內容,以及爬蟲基礎入門一些知識點。

要用的模組
requests >>> pip install requests 第三方模組 需要大家去安裝
csv
win + R 輸入cmd 輸入安裝命令 pip install 模組名 (如果你覺得安裝速度比較慢, 你可以切換國內映象源)

既然是爬蟲,那我們不得分析一下爬蟲的基本思路。

資料來源分析
我們不管是爬什麼,都要先找到資料來源對波。有來源才有下一步的行動。

1. 確定我們要爬取資料內容是什麼?
店鋪基本資料資訊
2. 通過開發者工具進行抓包分析 分析資料從哪裡可以獲取
美團資料, 從第一頁資料進行分析的, 沒辦法實現翻頁爬取操作

程式碼流程步驟
有了來源目標之後,再請求獲取資料,解析資料,最後建立資料夾儲存到Excel表格。當然,如果想爬更多的,肯定就得實現自動翻頁

  1. 傳送請求, 對於店鋪資訊資料包url地址傳送請求
  2. 獲取資料, 獲取伺服器返回的response響應資料
  3. 解析資料, 提取我們想要的一些資料內容 (店鋪資訊)
  4. 儲存資料, 把相應的資料內容儲存csv表格裡面
  5. 多頁爬取:多頁爬取資料內容

所有程式碼
程式碼都在這,大家可以去試試,不限正規足浴,其實想爬啥都行。

import requests
import pprint
import re
import csv
import time

f = open('
按摩data.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=[ '店鋪名稱', '人均消費', '店鋪評分', '評論人數', '所在商圈', '店鋪型別', '店鋪地址', '聯絡方式', '營業時間', '詳情頁', ]) csv_writer.writeheader() def get_shop_info(html_url): headers = { 'Cookie': '_lxsdk_cuid=1742973e754c8-0755662a43e0a2-3962420d-1fa400-1742973e754c8; iuuid=1F1D4BFAA0B9CA777B0EC2B899C43AD6C5C9CDB370B86A51322AB71211B94277; cityname=%E9%95%BF%E6%B2%99; _lxsdk=1F1D4BFAA0B9CA777B0EC2B899C43AD6C5C9CDB370B86A51322AB71211B94277; _hc.v=f4f02748-8eb7-1ea7-385c-5899047aa1c1.1618907157; __mta=251035321.1598423295952.1598423295952.1621410161604.2; uuid=05f4abe326934bf19027.1634911815.1.0.0; rvct=1%2C70%2C30; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; mtcdn=K; lt=knaBbvVTfN50cupoV5b87GJMXzkAAAAAAw8AAELrweWvhGhrM0fw6oTkLe5c6DGXJ6PCtxfyHgUPl3k-SVVR-Vs0LjzrGfewJhX8-g; u=266252179; n=qSP946594369; token2=knaBbvVTfN50cupoV5b87GJMXzkAAAAAAw8AAELrweWvhGhrM0fw6oTkLe5c6DGXJ6PCtxfyHgUPl3k-SVVR-Vs0LjzrGfewJhX8-g; unc=qSP946594369; firstTime=1634974011563; ci=70; _lxsdk_s=17cac0b849b-b3e-dac-85e%7C%7C10', 'Host': 'www.meituan.com', 'Referer': 'https://bj.meituan.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36', } response = requests.get(url=html_url, headers=headers) # print(response.text) phone = re.findall('"phone":"(.*?)"', response.text)[0] openTime = re.findall('"openTime":"(.*?)"', response.text)[0].replace('\\n', '') address = re.findall('"address":"(.*?)"', response.text)[0] shop_info = [address, phone, openTime] # print(shop_info) return shop_info # def get_shop_info(html_url): # headers_1 = { # 'Cookie': '_lxsdk_cuid=1742973e754c8-0755662a43e0a2-3962420d-1fa400-1742973e754c8; iuuid=1F1D4BFAA0B9CA777B0EC2B899C43AD6C5C9CDB370B86A51322AB71211B94277; cityname=%E9%95%BF%E6%B2%99; _lxsdk=1F1D4BFAA0B9CA777B0EC2B899C43AD6C5C9CDB370B86A51322AB71211B94277; _hc.v=f4f02748-8eb7-1ea7-385c-5899047aa1c1.1618907157; uuid=96d0bfc90dfc441b81fb.1630669508.1.0.0; ci=30; rvct=30; mtcdn=K; lt=1vyIlUgnzqEfhjpxic8Whf_WGfwAAAAAbg4AAOEUVbolB83IgwxL1wwOGfvIpVZsnHpwF6bGZZ5yT_SL4V8GRr4_WKkQ4s2AcF6Tmg; u=266252179; n=qSP946594369; token2=1vyIlUgnzqEfhjpxic8Whf_WGfwAAAAAbg4AAOEUVbolB83IgwxL1wwOGfvIpVZsnHpwF6bGZZ5yT_SL4V8GRr4_WKkQ4s2AcF6Tmg; firstTime=1630669549381; unc=qSP946594369; _lxsdk_s=17bab7a163a-27-d8f-8fd%7C%7C113', # # 'Referer': 'https://sz.meituan.com/', # 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' # } # response_1 = requests.get(url=html_url, headers=headers_1) # html_data = re.findall('"address":"(.*?)","phone":"(\d+)"', response_1.text)[0] # return html_data # get_shop_info('https://www.meituan.com/meishi/193587069/') for page in range(0, 1537, 32): time.sleep(2) url = 'https://apimobile.meituan.com/group/v4/poi/pcsearch/30' data = { 'uuid': '05f4abe326934bf19027.1634911815.1.0.0', 'userid': '266252179', 'limit': '32', 'offset': page, 'cateId': '-1', 'q': '按摩', 'token': 'knaBbvVTfN50cupoV5b87GJMXzkAAAAAAw8AAELrweWvhGhrM0fw6oTkLe5c6DGXJ6PCtxfyHgUPl3k-SVVR-Vs0LjzrGfewJhX8-g' } headers = { 'Referer': 'https://sz.meituan.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } response = requests.get(url=url, params=data, headers=headers) result = response.json()['data']['searchResult'] for index in result: shop_id = index['id'] index_url = f'https://www.meituan.com/meishi/{shop_id}/' shop_info = get_shop_info(index_url) dit = { '店鋪名稱': index['title'], '人均消費': index['avgprice'], '店鋪評分': index['avgscore'], '評論人數': index['comments'], '所在商圈': index['areaname'], '店鋪型別': index['backCateName'], '店鋪地址': shop_info[0], '聯絡方式': shop_info[1], '營業時間': shop_info[2], '詳情頁': index_url, } csv_writer.writerow(dit) print(dit)

還可以實現資料分析啥的,我就不往下寫了,前兩天的一篇,有實現資料分析的,同一個平臺的。

兄弟們,看完記得點個贊三連啥的,這樣我更新就更快了,我就喜歡快~
給你們獎勵一個女朋友!