python 丰田经销商
import requests
import json
from dbutil.pgsql import PgsqlPipeline
from datetime import date headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9', } def get_Provinces():
url = 'https://www.ftms.com.cn/website/Maintenance/getProvince'
response =requests.get(url,headers=headers,verify=False)
provinces_list= json.loads(response.text)['data']
return provinces_list def get_Citys(provinces_cid): city_url =f'https://www.ftms.com.cn/website/Maintenance/getCity?cid={provinces_cid}' res=requests.get(city_url,verify=False,headers=headers)
cities=json.loads(res.text)['data']
return cities
# print(cities) # city_list=json.loads(reponse.text)['data']
# for city_dict in city_list:
# city_cid=city_dict.get('cid')
# city_name=city_dict.get('name')
# print(city_cid,city_name)
# def get_Dealers(city_id,provinces_cid): dealers_url ='https://www.ftms.com.cn/website/Dealer/getDealer'
data={'cityName': "" ,'cityid': city_id,'dealerName': "",'provinceName': "",'provinceid': provinces_cid}
# data={"provinceid":"420000","cityid":"420700","dealerName":"","cityName":"","provinceName":""}
print(data) dealer_res=requests.post(dealers_url,headers=headers,verify=False,data=json.dumps(data))
dealers=json.loads(dealer_res.text)['data']['list']
return dealers def get_item(dealer, province_name, city_name):
item={
"dealer_name":dealer["fullname"],
"brand_id": None,
"address": dealer["address"],
"brand": "丰田",
"province": province_name,
"city": city_name,
"sale_call": dealer["phone_seal"],
"customer_service_call": dealer["phone_service"],
"update_time": date.today(),
"longitude": dealer['lng'],
"latitude": dealer['lat'],
"dealer_type": None,
"manufacturer_id": None,
"manufacturer": "丰田汽车",
"state": None,
"opening_date": None,
"close_date": None,
"dealer_id_web": None,
"controlling_shareholder": None,
"other_shareholders": None,
"status": None,
"remarks": None, } return item def get_items():
items=[]
provinces_list =get_Provinces()
for provinces_dict in provinces_list:
provinces_cid =provinces_dict.get('cid')
provinces_name=provinces_dict.get('name')
# print(provinces_cid,provinces_name) cities =get_Citys(provinces_cid)
for city in cities:
city_id =city.get('cid')
city_name=city.get('name')
# print(city_id,city_name)
dealers=get_Dealers(city_id,provinces_cid)
for dealer in dealers: print(dealer)
item=get_item(dealer,provinces_name,city_name)
items.append(item) return items def main():
print('爬虫开始.....')
items=get_items() print('等待数据存储')
pg =PgsqlPipeline()
for item in items:
pg.process_item(item)
pg.close()
print('数据存储完成!!!') if __name__ == '__main__':
main()
python 丰田经销商的更多相关文章
- python 日产经销商
''' ajaxCallSiteInfo: {1C8B2BC6-35E2-460E-A63D-3576F3039D79} ''' import requests import json from db ...
- 长安铃木经销商爬取(解析xml、post提交、python中使用js代码)
1.通过火狐浏览器,查找大长安铃木官网中关于经销商的信息主要在两个网页中 http://www.changansuzuki.com/khfw/xml/pro.xml 地域信息 http://www. ...
- Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)
有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址. 本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程. 一:爬虫的目标: 打开汽车之家的链接:https: ...
- 利用 Python 只连接一次 MySQL
Github 地址 项目背景 最近做个项目,需要进行试驾分析,所谓"试驾",是指顾客在 4S 店指定人员的陪同下,沿着指定的路线驾驶车辆,从而了解这款汽车的行驶性能和操控性能.通常 ...
- python环境jieba分词的安装
我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法. 安装说明======= 代码对 Python 2/3 均兼容 * 全自动安装:`ea ...
- python第三方库------jieba库(中文分词)
jieba“结巴”中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点支持三种分词模式: 精确模式,试图将句子最精确地切开, ...
- python之jieba库
jieba “结巴”中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese tex ...
- Python设计模式 - 基础 - 七大基本原则
提倡使用设计模式,主要出发点就是实现代码复用,增加代码的扩展性和可维护性.如何设计出简洁.易懂.灵活.优美的代码结构的确是一门学问,透彻理解并践行如下七大原则通常都能取得基本满意的结果: - 单一职责 ...
- python记录_day18 反射 判断函数与方法
一.三个内置函数 1.issubclass(a, b) 判断a类是否是b类的子类 class Foo: pass class Zi(Foo): pass class Sun(Zi): pass pr ...
随机推荐
- LNMP集群架构篇
一.LNMP介绍 1.使前端web服务和后端存储服务进行串联 2.主要实现处理php动态请求 工作原理: L:linux N:nginx M:mysql P:php 二.lnmp部署 我的环境 ...
- 1144. The Missing Number (20)
Given N integers, you are supposed to find the smallest positive integer that is NOT in the given li ...
- 关于memset
memset填充的是一个字节,比方下面的一段程序: #include <cstdio> #include <cstring> using namespace std; ]; i ...
- element-ui 里面el-checkbox多选框,实现全选单选
data里面定义了 data:[], actionids:[],//选择的那个actionid num1:0,//没选择的计数 num2:0,//选中的计数 ...
- 第四周作业—N42-虚怀若谷
一.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@centos7 ~]# grep -v "/sbin/nolo ...
- UI定位元素大全(跟App定位元素差不多哦)
selenium+python自动化之元素定位 作者:一飞冲天 同样的道理,把一个页面上的元素当成是一个对象(你的女神),我们就可以通过她的属性值来找到她,比如她性别女爱好爬山---------你就可 ...
- 用Jquery方法实现的简单下滑菜单效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- SQL Server 中用While循环替代游标Cursor的解决方案
在编写SQL批处理或存储过程代码的过程中,经常会碰到有些业务逻辑的处理,需要对满足条件的数据记录逐行进行处理,这个时候,大家首先想到的方案大部分是用“游标”进行处理. 举个例子,在订单管理系统中,客服 ...
- B/S大文件上传解决方案
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = ...
- 在服务器上给tomcat指定jdk版本
export JAVA_HOME=/usr/local/jdk1.8 --路径是:Jdk8所在的目录 export CATALINA_OPTS="-Djava.awt.headless=tr ...