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 ...
随机推荐
- 如何在Linux下手动编译安装gcc
如果可以通过apt来安装的话,尽量不要手工编译了,手工编译是最后的选择.用apt安装,只需要输入一条命令: sudo apt-get install gcc 手工编译的话,gcc和其他软件包存在如下的 ...
- alert(1) to win 4
function escape(s) { var url = 'javascript:console.log(' + JSON.stringify(s) + ')'; console.log(url) ...
- java 小数精确计算
小数精确计算 System.out.println(2.00 -1.10);//0.8999999999999999 上面的计算出的结果不是 0.9,而是一连串的小数.问题在于1.1这个数字不能被精确 ...
- layer-框架使用修改部分
关于框架中js调子方法出错的处理 top.layer.open({ id: options.id, type: 2, shade: options.shade, title: options.titl ...
- windows下zookeeper集群安装
windows下zookeeper单机版安装,见:https://www.cnblogs.com/lbky/p/9867899.html 一:zookeeper节点为什么是奇数个? 单机模式的zk进程 ...
- 前端面试题:CSS实现水平垂直居中
这是一个挺常见的前端面试题,但是没有做过总结.有的时候可能会使用完了,很长一段时间不去使用,会慢慢忘记.所以,温故而知新,还是很有必要的. 一.绝对定位元素的居中实现 这一种工作中用的应该是最多的,兼 ...
- 【leetcode】1079. Letter Tile Possibilities
题目如下: You have a set of tiles, where each tile has one letter tiles[i]printed on it. Return the num ...
- Ubuntu系统安装两个tomcat
1:创建两个tomcat 2:在/etc下有个 profile 然后vim 编辑它 在 最下面加上这句话.这是两个tomcat的路径 #开启多个tomcat export CATALINA_BASE ...
- B/S大文件上传解决方案
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = ...
- DELPHI 把数据库中的数据转换成XML格式
function ReplaceString(AString: string): string; begin Result := StringReplace(AString, '&', '&a ...