本人小白一枚,
编码太low,暂时先跑起来后期再做修改
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import requests
import Geohash
import urllib.request
import urllib.parse
import json
import random
from time import sleep
# 各个市区名称 https://www.ele.me/restapi/shopping/v1/cities
class ElemeSpider():
def get_city(slef):
url_city = 'https://www.ele.me/restapi/shopping/v1/cities'
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36",
}
request = urllib.request.Request(url=url_city, headers=headers)
slef.json_text = urllib.request.urlopen(request).read().decode()
slef.json_obj = json.loads(slef.json_text) #获取所有城市json数据 并转为字典格式
slef.objs = []
for i in slef.json_obj:
for j in slef.json_obj[i]:
slef.objs.append(j)
#{'abbr': 'AX', 'id': 608, 'latitude': 38.935349, 'longitude': 115.935638, 'name': '安新', 'pinyin': 'anxin'}
# 城市参数 有 latitude 和 longitude 这两个参数是 经纬度 用于后面的url输入 以及 经纬度计算
slef.city_all = []
for city in slef.objs: slef.city_all.append(city['name'])
slef.name = input("请输入您要下载数据的城市:")
while slef.name not in slef.city_all:
name = input('输入错误!!! 请重新输入:')
for slef.ci in slef.objs:
if slef.ci['name'] == slef.name:
slef.latitude = slef.ci['latitude']
slef.longitude = slef.ci['longitude']
return slef.