互联网的冬天是越来越冷了,大家都在开始考虑找点其他的事情做做了。最近发现城市里的彩票店是越来越多了,超市边,商场里,小区外,甚至丧心病狂的连景区和夜市中都有了彩票店的身影。。。彩票店,似乎变成了可以使大龄失业者们最快爬起来的一根救命稻草了。那么,现在开彩票店还能挣钱吗🤔?

cover_image

带着这个疑问,我友好的查看了本省福彩官网上申办信息。额,这个排版对我似乎不太友好。

福彩申办信息

好吧,还是让我们习惯性的使用command + option + I吧🐶。通过XHR拿到URL就好了。

Ajax

URL

接着就是简单的把数据都保存到csv文件中吧,用最简单的requests就好了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import requests
import csv
from multiprocessing.dummy import Pool
import json
import time

# 线程池
concurrent_requests = 6
# 考虑到服务器压力,增加了重试
retry_attempts = 3

def get_cwl_search_result(pageNum):
url = 'http://zjflcp.zjol.com.cn/fcweb/touzu/page.html?pageNum=%d' % pageNum
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36 Edg/83.0.478.50",
}
for _ in range(retry_attempts):
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json()
except (requests.exceptions.RequestException, json.JSONDecodeError) as e:
print(f"Request error for page {pageNum}: {str(e)}")
time.sleep(0.2)
return None

一顿操作下来,数据就很简单的拿到了。通过pandas读取csv数据,然后print(len(df))数一数,一共是6984条数据。啧啧,真不少。

done

先简单看看本市有多少家店: 913

杭州福彩

再简单看看福彩中心开的店有多少:7家,还行,不过占据的似乎都是有利地形啊😂

杭州福彩

数据做一个简单的分类,applyName包含“福利彩票发行中心”的归于“自营”,包含“公司”的归于“公司”,其他的归于“个人”。可以计算出本市共计:

  • 自营: 7家
  • 公司: 132家
  • 个人: 774家

此时我们可以通过地理编码将结构化地址转化为经纬度坐标, 可以使用谷歌或者百度提供的API接口,也可以自己找找免费的API:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import requests

class FreeApi:
def __init__(self, api_key, address):
self.api_url = f'https://restapi.amap.com/v3/geocode/geo?key={api_key}&address={address}'
print(self.api_url)

def get_result(self):
return self.free_api_request(self.api_url)

def free_api_request(self, url):
response = requests.get(url)
if response.status_code == 200:
return response.json()
return None

最后,我们可以调用folium,创建一张本市的地图:

1
city_map = folium.Map(location=[30.2741, 120.1551], zoom_start=11)

然后将获取到的经纬度坐标以及分类名称,在地图上打好锚点,就能看到整个城市的彩票店大致分布啦。