• 45.更新一下scrapy爬取工商信息爬虫代码


    这里是完整的工商信息采集代码,不过此程序需要配合代理ip软件使用。
    问题:
    1.网站对ip之前没做限制,但是采集了一段时间就被检测到设置了反爬,每个ip只能访问十多次左右就被限制访问。
    2.网站对请求头的检测识别
    解决:
    1.配合代理ip软件(风讯代理)设置自动切换ip时间,执行爬虫程序。
    2.中间件设置随机user-agent

    采集结果:
    正常采集速度一天大概采集1万条数据左右。
    问题:
    切换ip会造成程序断网一些字段遗漏
    解决(设置的有唯一索引避免重复采集,多次执行爬虫)
    company_info.py

    #
    -*- coding: utf-8 -*- import scrapy from ZJPL.items import QichachaItem class CompanyInfoSpider(scrapy.Spider): name = 'company_info' allowed_domains = ['m.qichacha.com'] start_urls = ['https://m.qichacha.com/search?'] custom_settings = { "DOWNLOAD_DELAY": 0.5, "TABLE": 'qichacha', "MYSQL_DB": 'company_info', "ITEM_PIPELINES":{'ZJPL.pipelines.MysqlPipeline': 320}, "DOWNLOADER_MIDDLEWARES": { 'ZJPL.middlewares.RandomUseragentMiddleware': 500, }, } def start_requests(self): company_list=['托克智能仪表(成都)有限公司', '福州富企王牌感应设备有限公司', '四川宏森发钢铁有限公司', '宁波标兵涂料有限公司深圳分公司', '成都嘉盾电气有限公司', '南宁市桂塑塑料制造有限责任公司', '自贡华泰空分科技发展有限公司', '天津太敬机电技术有限公司', '广州华粤管业有限公司成都代理', '上海正泰焊接设备有限公司济南总代理', '广东东鹏陶瓷股份有限公司广州分公司', '中山环宇有限公司阳江办事处', '利达集团北京利达华信电子有限公司江门办事处', '常州市河马塑胶有限公司广州办事处', '广东美涂士涂料河北总代理', '广东原笙管业有限公司', '泊头沃尔特铸铁有限公司', '成都雷克星科冷却设备有限公司', '天津盛辉伟业钢铁贸易有限公司', '金牛区迪龙物资商行', '成都市三清木塑新材料有限公司', '冠珠陶瓷德阳专卖店', '成都四维瓷业有限公司', '四川省宜宾市鸿盛综合贸易有限公司', '南京昆元白水泥厂', '武汉市燃力热力工程公司', '成华区深广洁具经营部', '香港康派化学有限公司泰和总代理', '江苏宇宙焊接材料集团公司', '洛阳石化宏达塑业', '上海中南建筑材料公司', '保定天泽林板业有限公司', '北京通达恒运商贸有限责任公司', '四川同一科技发展有限公司', '苏州三星电子有限公司广州办事处', '石家庄宇泉环保设备有限公司四川办事处', '成都金牛制冷有限公司', '福建省南安市港都水暖器材厂四川销售处', '成都科文保温材料有限公司', '重庆万丰成都建材有限公司', '四川金利商贸有限责任公司', '亚士漆(上海)有限公司成都销售服务中心', '北京市金英利达金属材料有限公司', '北京伟屹恒科技有限公司', '金川越大北京贸易有限公司', '成都丁家艺家居有限公司', '成都市奥浦窗饰经营部', '南京英安特科技实业有限公司', '杭州华兴交通电子标志制造有限公司成都办事处', '长虹木业有限公司', '四川省成都岷江园林有限公司', '石家庄鑫明保温材料厂', '广东桂龙自动化科技有限公司', '人民电器集团成都销售处', '无锡市太湖防腐材料有限公司', '成都景能电器有限责任公司', '成都兴中航制冷设备工程有限公司', '四川省成都市武侯区永发卷帘门窗经营部', '成都美丽居玻璃工艺有限公司', '四川华夏特种玻璃工程有限公司', '成都演益木业厂', '广东省江门市大自然化工有限公司', '高邮市东郊铸管厂', '四川楚北混凝土有限公司', '成都市金牛区豪德建材商贸部', '三立灯饰公司', '潍坊市宏源防水材料有限公司', '广西青龙化学建材有限公司', '成都市鹏达照明工程部', '四川省特丽达实业有限公司', '华亚(东营)塑胶有限公司', '辽宁华冶集团发展有限公司', '四川海顿建材有限公司', '镇江大洋星鑫工程管道有限公司', '青岛路通达塑料机械有限公司', '大理红山水泥有限责公司', '武汉东方玻璃钢制品有限公司', '沈阳德美斯防水堵漏工程有限公司', '广东省佛山市南海圣东涂料有限公司', '哈尔滨鸿海钢材销售有限公司', '哈尔滨益泰数码科技有限公司顾地黑龙江总代理', '中国机械工业成套工程总公司哈尔滨代理', '哈尔滨凯撒管业有限公司', '哈尔滨市东北龙金属材料公司', '广州碧非控制系统有限公司', '重庆世邦五交化有限公司', '沙坪坝区泰瑞木制品厂', '哈尔滨中天宏远锅炉有限公司', '长城橡胶有限公司哈尔滨分公司', '哈尔滨三川给水设备制造有限公司', '哈尔滨鸿盛建筑材料制造股份有限公司', '哈尔滨远东星空科技有限公司', '紫荆花制漆上海有限公司哈尔滨办事处', '大庆科尔达电热仪表有限公司', '哈尔滨瑞鑫洋新能源科技有限公司', '重庆东海水处理设备有限公司', '上海胜华电缆(集团)有限公司重庆办事处', '圣象地板哈尔滨分公司', '哈尔滨天韵玻璃装饰制品厂', '黑龙江奥德尔集团苗木基地', '黑龙江睿艳苗木', '重庆市华特通信设备有限责任公司', '南昌县佰嘉涂料厂', '重庆普永科技发展有限公司', '哈尔滨居安消防设备经销有限公司', '黑龙江德盟塑胶机械有限公司', '哈尔滨长龙科技有限公司', '赛博陶瓷有限公司', '江西省奉新县上富镇森辉苗木基地', '岳阳市中安消防水暖器材经营部', '湖南桃花江实业有限公司', '江西省吉安市永安交通设施有限公司', '长沙凯美家晾衣架厂', '南昌市青云谱惠军安消防器材经营中心', '衡阳威盾科贸有限公司', '广丰县景山实业有限公司', '衡阳市雁峰建文保温材料厂', '南昌安居科技有限公司', '赣州百施得新型建材有限公司', '湖北首云建筑防水工程有限公司南昌分公司', '湖南顺天混凝土有限公司', '江西鑫隆泰建材工业有限公司', '福建振云塑业股份有限公司江西总代理', '南昌市浩浪体育用品商行', '江西瑞健康体设备有限公司', '浙江中捷管业有限公司江西销售中心', '江西省润邦化工有限责任公司', '红太阳洁具湖南总代理', '美标洁具湖南地区总经销', '南康伟业木工厂', '上高县德燕塑胶制品厂', '江西芸林木业有限公司', '安华陶瓷洁具有限公司长沙总经销', '江西玉龙防水材料有限公司', '苏州特瑞斯智能科技有限公司', '贝谷科技股份有限公司', '南昌天绘测绘仪器有限公司', '江西新东元物资有限公司景德镇分公司', '江西新东元物资有限公司', '浙江佑安高科江西办事处', '上饶市建文电气成套有限公司', '江西硕博科技有限公司南康分公司', '迪古里拉(北京)涂料有限公司', '佐敦涂料(张家港)有限公司', '南昌博大装饰材料总汇', '江西萍乡玉兰墙纸旗舰店', '欧雅壁纸樟树专卖店', '黄石市天安科技有限公司', '武汉市洪山区沐氏消防器材经营部', '绵阳久信玻璃有限公司', '湖北武穴市兴雨泵业有限责任公司', '成都飞雕电器销售有限公司', '武汉康润环保科技有限公司', '武汉华朗科贸有限公司', '武汉昊特流体设备有限公司', '武汉斯华美工业技术有限公司', '贵州利源木业有限公司', '铜仁宏绿林产品加工有限公司', '台江县木材公司胶合板厂', '新余市君元贸易有限公司', '贵阳市黔灵福热能设备有限公司', '贵州永发商贸有限公司第一分公司', '贵阳安吉尔电器有限公司', '九江现代良友实业有限公司', '江西省南昌市新发展建材有限公司', '江西省电力煤气设备安装公司', '沈阳金德管业集团贵阳分公司', '贵州省交通物资总公司', '贵州瑞华塑胶有限公司', '福泉星星套装门总代理', '黑龙江哈尔滨市天净管业销售公司', '黔西南州共青林场有限公司册亨活立木分公司', '汉高粘合剂有限公司湖北分公司', '贵阳南明嘉鑫装饰材料经营部', '湖北双龙建材有限公司', '武汉铂海电气有限公司', '武汉华天世纪科技发展有限公司', '绿精灵地板株洲专卖店', '武汉市涂料大全建筑公司', '贵州理想美标识工程有限公司', '湖南湘君竹业有限公司', '贵阳鞑健慧教玩具厂', '贵阳瑞山金属丝网有限公司', '新余市来威漆(腾达化工)营销中心', '贵阳世纪星文泰健身器材厂', '贵阳云岩锡建仪器经营部', '贵州西普天辰测绘公司', '宜昌远见建材经营部', '航标卫浴武汉专卖店', '哈尔滨市峰华全钢防静电地板有限公司', '生活家地板哈尔滨总代理', '武汉市三金陶瓷股份有限公司', '哈尔滨北扬信达科技开发有限公司', '哈尔滨晟宇科技开发有限公司', '崇州市元通镇天泽物质经营部', '黑龙江瑟科赛斯科技有限公司', '上海品奥涂料有限公司武汉分公司', '江口县元利商贸有限公司', '贵阳傲世达洁具有限公司', '贵州振中玻璃有限公司营销部', '贵阳协和商贸有限责任公司', '贵阳广禾建材有限公司', '鑫泰电缆桥架公司', '遵义和成卫浴销售中心', '贵阳顺沣建材名店', '平安家园五金商行', '宏兴石料厂', '美高壁纸贵州省总代理', '瑞典摩曼壁纸贵州专卖店', '贵阳天豪装饰材料有限公司', '上海汇丽地板贵州总代理', '威海山花华宝地毯有限公司武汉分公司', '武汉新士林电气设备有限公司', '武汉虹宇电力机电设备有限公司', '哈尔滨威逊机械连接件经销有限责任公司', '阿城继电器股份有限公司', '大庆市新庆工管件制造有限责任公司', '贵州成丰达电缆桥架有限公司', '贵阳福控自动化科技有限公司', '贵州长佳电器设备有限公司', '哈尔滨亿斯特科技开发有限公司', '筑巢装饰公司贵州分公司', '贵州中岩保温工程有限公司', '万通防水材料有限公司贵州分公司', '小雪家具有限公司xa0', '黑龙江鑫龙钢化玻璃厂', '湘江陶瓷经销部', '奥米茄陶瓷大庆专卖', '武汉泰欧亚建筑材料有限公司', '贵阳小河广达纳米涂料厂', '贵州聚达电子科技有限公司', '贵州天安消防工贸有限公司', '大庆立邦代理经营部', '武汉旷远电子技术有限公司', '哈尔滨中环科环保节能设备有限公司', '武汉市鑫达不锈钢有限公司', '贵阳新纪物资贸易有限公司', '武汉天格贸易有限公司', '武汉丰澜板业制造有限公司南宁办事处', '上海冠龙阀门机械有限公司广州办事处', '重庆宏漆涂料(集团)有限公司', '重庆瀚龙建材有限公司', '南宁市宝利吉装饰工程有限公司', '自贡市汇东新区汇积电气经营部', '广东顾地塑胶股份有限公司', '重庆仁本建材有限公司', '重庆瑞乔建材有限公司', '江西康达竹业集团通贵地板湖北总代理', '美迪亚地板有限公司湖北营销中心', '武汉绿洲木业有限公司', '重庆市沙坪坝区美恒洁具厂', '广西南宁奥力奥金属有限公司', '武汉市东西湖浩宇不锈钢经营部', '广东柔乐电器有限公司成都办事处', '成都市郫县锦信木业厂', '四川省瑞森人造板有限公司', '江汉油田凯达实业有限公司高压泵厂', '武汉华阳新利水处理技术有限公司', '武汉益普水处理设备有限公司', '上海浦旭真空泵制造有限公司', '四川奇立隆饰材连锁有限公司', '重庆益欣建材有限公司', '宜兴市城南环保设备制造厂', '长沙绿精灵地板红星美凯龙旗舰店', '北京宏兴东升防水施工有限公司', '山东康鲁节能设备有限公司', '江西鑫隆泰建材工业有限公司成都办事处', '安平县泰尔利卫浴有限公司', '天津市蓟县京津水泥厂', '北京春来新型环保设备有限公司', '天津兵众混凝土有限公司', '北京欧德汇依木房屋有限公司', '深圳市联泰一帆电子科技有限公司', '大连众恒电力电子有限公司', '四川东泰新材料科技有限公司武汉办事处', '上海天力实业有限公司武汉办事处', '衡阳市雁峰江东吸砂泵厂', '武汉瑞吉尔科技有限公司', '湘西阳峰木业有限公司', '湖南省宇翔木业有限公司', '北京旺泉建业科贸中心', '武汉汉瑞科技发展有限公司', '上海柯耐弗电气四川办事处', '钟祥市顺发木业有限公司', '北京星牌建材有限责任公司武汉分公司', '武汉家盛时代装饰材料有限公司', '哈尔滨盛隆墙体材料有限公司', '广州华懋科技发展有限公司黑龙江分公司', '安徽凯升管业有限公司', '山东鑫丹利物资有限公司', '深圳市安泰君威实业有限公司哈尔滨办事处', '杭州海康威视数字技术股份有限公司成都分公司', '成都市都得利管业有限公司', '广西通利昌物资设备有限责任公司', '云南矗立伟业经贸有限公司', '天津市铸诚景明机械租赁有限公司', '江西联信大市场新发机电有限公司', '张家港市富昶热能设备有限公司', '江西瑞昌市高品质乳胶漆厂', '天津鸿顺意门窗有限公司', '江西省南昌市世纪园林绿化工程有限公司', '哈尔滨市热管锅炉厂', '昆山禾木园艺绿化工程有限公司', '昆明市五华区警群安全器材科技经营部', '武强县精创仪器仪表厂', '北京广建振业空调设备有限公司', '北京千住消防器材有限公司', '神州数码(中国)有限公司', '天津蓬联照明科技有限公司', '北京华隆凯商贸有限公司', '淄博远航建陶有限公司', '菏泽市牡丹区运祥不锈钢制品有限公司', '北京普林森环保科技有限公司', '天津进强钢铁贸易有限公司', '天津市蓟县汇隆森装饰材料厂', '山西汇世天勤保温材料有限公司', '潍坊三华利机械科技有限公司', '沈阳金铠建筑科技股份有限公司', '哈尔滨美江管业有限公司', '大厂回族自治县国宏水泥制品有限公司', '南昌市洪达世家装饰材料有限公司', '景县智龙金属软管加工', '庆云县鑫泰龙机床附件厂', '固安县渠沟占水铁管卡厂', '北京博星得门控科技有限公司', '太原天镁恒信贸易有限公司', '上海通用机电集团', '沧州昕华精密设备有限公司', '石家庄远大环保节能技术开发有限公司', '天津市昊佳电子技术有限公司', '北京市润实盛然园林绿化有限公司', '泊头市驿通汽车配件厂', '北京思创伟业换热设备有限公司', '合肥市顺昌电磁加热科技发展有限公司', '北京广灵精华科技有限公司', '天津乐鑫商贸有限公司', '天津市松立工贸有限公司北京办事处', '石家庄东裕电器厂', '广州大超保温材料有限公司', '雄县亚润塑料制品有限公司', '承德昊远塑料制品有限公司', '轩悦视听有限公司', '济南辰联电子有限公司', '北京慕迪灵翻译有限公司', '天津市金动能源技术有限责任公司', '保定市厚奇新能源科技有限公司', '盐山县中泰体育健身文化用品经销处', '石家庄市太行伟业水泵有限公司', '任丘市佳乐水空调经销处', '中大空调集团有限公司', '北京格瑞那环能技术有限责任公司', '北京市海兴达机电设备销售中心', '北京腾飞世纪星气球有限公司', '南宫市金萧毛毡制品厂', '北京速可达科技有限公司', '北京华宝京安科技发展有限公司', '北京华琪软通技术有限公司', '北京成泰天地科技有限公司', '北京汉和鸿嘉科技有限公司', '北京市兴体良体育用品有限公司', '北京华夏京奥科技有限公司', '北京阳光万通科技有限公司', '唐山市和顺科技有限公司', '上海昀峰仓储设备有限公司', '北京古龙木雕加工厂', '泊头市硕达机械设备有限公司', '北京瑞龙泰装饰材料有限公司', '广州市谦木建筑材料有限公司', '深圳市宝安区公明盛鑫门窗组装经营部', '广东顾地塑胶有限公司', '天津永大晟航商贸有限公司', '秦皇岛顺亨玻璃有限公司', '北京新康建筑门窗有限公司', '北京华凯门窗设计工程有限公司', '北京江南京安建材经销部', '北京市酒仙桥建材装饰市五金中心', '山西太原尖草坪批发市场江龙商行', '扬州天喜塑胶有限公司', '北京阳光创奇体育设施有限公司', '北京畅易达工贸有限公司', '天津市武清区全和地毯机械厂', '南宫恒信毛皮制品有限公司', '北京市希玛保龄球设备有限公司', '北京华海恒辉科技有限公司', '北京市政专用汽车厂', '河北福玉专用汽车有限公司', '广东标光工程材料有限公司', '广宇有机玻璃厂', '广东华润涂料有限公司', '成都五佳恒贸易有限公司', '广东聚源管业实业有限公司', '广州市光阳包装材料有限公司', '佛山市天虹艺术玻璃有限公司', '金达丰五金工具灯饰锁业电器', '深圳是科泰联合集采有限公司', '成都炬烽钢铁有限公司', '佛山市天兴消防器材有限公司', '佛山市埃森塑胶电器有限公司', '北京佳宝兴达智能科技有限公司', '江苏星华机场设施有限公司', '长沙华振供水设备有限公司', '上海星义计算机科技有限公司', '广州市顺大装饰材料有限公司', '广州市花都区金均钢管钢构厂', '泰州市高港区金凌体育器材制造厂', '唐山陶瓷厂成都办事处', '无锡金羊深圳分公司', '益通管道设备厂', '益鑫铝业有限公司', '北京天元汇通建材有限公司', '哈尔滨东邦新型建筑材料有限公司', '恩光防腐瓷业有限公司', '青岛神州防水装备有限公司', '江苏双腾管业有限公司', '宁波兆亿弱电工程有限公司', '深圳市彬源环保设备有限公司', '深圳宝安区联兴木业', '四川盛鑫铝制品有限公司', '中山市古镇希妮照明门市部', '东莞市麦蒂科技有限公司', '东莞市绿王涂料经营部', '欣科嘉元电子通讯设备有限公司', '佛山赛尼洁具有限公司', '惠州市旗龙科技有限公司', '大连星海电器厂', '大连佰适商贸有限公司', '广州市白云泵业集团有限公司大连办事处', '深圳市龙祥康体设施发展有限公司 ', '深圳市桐子园铸造厂', '广州市一苇园林工程有限公司', '深圳市光时代科技发展有限公司', '天津市塘尔斯阀门厂', '大连市建筑防水材料厂', '福隆兴管业有限公司', '抚顺顺大建材厂', '华强页岩烧结砖有限公司', '怡农园艺有限公司', '天虹预制构件厂', '风彩涂料厂', '庆华建业有限公司', '灵玉保温材料厂', '沈阳瑞得涂料厂', '德州东方土工材料股份有限公司', '宏伟彩色水泥制品厂', '上海友力水泵有限公司', '四川兰迪菲尔软包壁纸装饰装修公司', '紫阳建材有限公司', '广东新粤交通投资有限公司', '四川东进节能玻璃有限公司', '广东高丽铝业有限公司南宁分公司', '大连志强管业科技发展有限公司', '丹东灯泡厂', '天津市明生环保工程设备有限公司', '温州市万航电器厂', '温州市龙湾天河贵宾电器厂', '东莞市翔宇金属材料有限公司', '株洲市奇珍家居用品销售部', '长沙市泽诚电器贸易有限公司', '诺美佳电器有限公司', '长沙市成就电子科技有限公司', '长沙科辉电子有限公司', '长沙秉胜电子科技有限公司', '西安鑫淼电子科技有限公司', '天津市江光贸易有限公司', '天津市明浩商贸有限公司', '天津畅坤商贸有限公司', '天津弘道志远商贸有限公司', '天津市津南区国联防火门厂', '天津市隆拓防火设备厂', '天津大统工程公司', '天津市TOTO卫浴有限公司', '天津市万方彩钢板厂', '天津市叶兹化工技术有限公司', '天津水泥厂津泥建材销售中心', '天津吉砼外加剂有限公司', '天津汇佳机电有限公司', '上海康大泵业制造有限公司天津分公司', '成都广运电气工程设备有限公司', '上海敏盛电子有限公司', '沈阳百达识别技术有限公司', '哈尔滨胜利阀门', '哈尔滨电器设备厂有限公司', '哈尔滨市大中五金交电批发部', '哈尔滨同心圆电线电缆有限公司', '广东高丽铝业有限公司成都分公司', '四川省川汇塑胶有限公司', '河北兴利阀门管件制造有限公司成都办事处', '广东美的照明电气制造有限公司成都办', '恒远照明配送中心-飞利浦', '成都永亨塑业有限公司', '恒业国际控股集团西南分公司成都办', '四川蓉诚鑫宏信商贸有限公司', '浙江双环塑胶阀门有限公司成都办', '成都亚盟线缆有限公司', '天津市沃尔特阀门制造有限公司', '天津市六通风机厂', '上海蓝升泵业', '爱优特空气技术(上海)有限公司', '深圳建华宇装饰工程有限公司', '必凯威(北京)建筑材料有限公司', '长沙市芙蓉区晨风办公家具经营部', '温州市龙湾沙城家榜电器厂', '温州国缘电器有限公司', '温州市龙湾天河正鑫电器', '北京宏源兴诚商贸有限公司', '北京兆诺商贸有限公司', '衡华配件厂', '成都市双信管桩有限公司', '成都市金意鑫建材有限公司', '北京美绿华技贸有限公司', '四川金利特不锈钢制造有限公司', '福建省南安市华东石材有限公司成都分公司', '大连远东机电工具有限公司', '南昌华泰硅橡胶制品有限公司', '南昌市青云谱洪都五金标准件中心', '上海传易电子科技有限公司江西分公司', '武汉永翔不锈钢经营部', '武钢集团汉阳机械厂', '北京金隅股份有限公司', '武汉市汉阳区湘源木地板加工厂', '郑州中原应用技术公司南宁分公司', '北京中合天下焊接材料有限公司', '北京金安鑫业五金交电有限责任公司', '北京鹏昭顺展建材经销部', '北京宏亚环奥建材有限公司', '北京晶彩耀华玻璃厂', '北京侨华普路贸易中心', '恒盛绝缘材料经销处', '济南奥强商贸有限公司', '济南东旺经贸有限公司', '济南强联物资公司', '济南市中天组培园艺用品供应中心', '济南忠诚塑料制品有限公司', '济南富安德机电设备有限公司', '贵阳昌威商贸有限公司', '贵阳延通贸易有限公司', '贵阳海森焊接材料有限公司', '贵州发奥迪焊接器材有限公司', '贵阳云岩博陵筛网经营部', '浙江巨力电气有限公司贵州办事处', '贵州友利和贸易有限公司', '贵阳鑫思源环保科技有限公司市场部', '贵阳市南明区伟宏钢木家具厂', '重庆市弘利金属材料商行', '重庆东方良工阀门有限公司', '重庆久诺阀门有限公司', '重庆耐仕阀门有限公司', '天津市润清磁卡技术有限公司', '成源耐火材料有限公司', '重庆迈博广告经营部', '重庆市屋之巧装饰材料有限责任公司', '江西顺发木竹加工有限公司', '新建县新兴木业厂', '南昌市宏宇陶瓷营销中心', '江西联信大市场丰华物资批发部', '南昌力拓阀门机电设备有限公司', '长兴品帝电器有限公司', '江西省益冠建材商贸有限公司', '江西亚立工贸有限公司', '南昌市红谷滩新区水知澳电器店', '南昌市水之良科技设备有限公司', '华明通风设备经营部', '江西省大自然环保通风设备有限公司', '夏氏兄弟风机经营部', '九江科华照明电器实业有限公司', '澳达斯灯饰名品生活馆', '南昌鹿江喷泉喷灌工程有限公司', '南昌市凡客灯饰商行', '南昌市西湖区海博光电产品经营部', '海口龙华磐石石料加工厂', '武汉浙艺环保科技有限公司', '武汉金洋龙建材商贸有限公司', '武汉市洪山区白沙洲建筑工程材料经营部', '武汉市洪山区全顺建筑器材经营部', '武汉三剑照明器材有限公司', '武汉市江汉区双洋液压气动设备商行', '武汉金榜轻工机械设备有限公司', '武汉艾格美居科技有限公司', '湖北仁孚环保工程有限公司', '武汉市文明经济发展有限公司', '武汉市江汉区鸿鹄电器销售部', '武汉祥兴宇电子科技有限公司', '武汉客林化工有限公司', '武汉安顺达装饰材料有限公司', '武汉诺克美佳商贸有限公司', '武汉市江岸区华燕天成办公家具经营部', '武汉市汉阳区华阳办公家具厂', '武汉市江岸区德森家俱厂', '贵阳闽泉贸易有限公司', '武汉市林桂竹木制品有限公司', '武汉市武昌区润禾木材经营部', '武汉市汉阳区普菲特建材商行', '鑫旺彩铝塑钢门窗厂', '武汉友阳家居纺织用品有限公司', '武汉市东西湖金旺胶粘制品厂', '武汉东方钢管贸易有限公司', '海湾安全技术有限公司北京分公司', '海寿管业有限公司西北分公司', '北京和信顺成科技发展有限公司', '北京经纬佑利管道水工设备有限公司', '中科天宇金属材料(北京)有限公司', '北京语信贸业有限公司', '北京振远洋真空科技有限公司', '睿智昊通管道阀门(北京)有限公司', '贵阳市南明区南泉水电物资经营部', '北京昌平腾达玻璃钢厂', '北京天澄玻璃钢有限公司', '北京新宝永昌玻璃钢有限公司', '北京天和雅筑工艺品有限公司', '北京远方动力可再生能源科技发展有限公司', '北京豪伟光业照明电器中心', '北京旺达盛电气有限公司', '北京旭能阳光科技有限公司', '北京宁晖兴业科技有限公司', '北京壹图照明科技发展中心', '北京市宏运钢材有限公司', '北京福海胜源科技有限公司', '南昌高新技术产业开发区昌东飞虎塑胶厂', '济南莱特灯具销售中心', '济南友森达网络技术有限公司', '济南红鹦鹉环保科技有限公司', '山东金丰罗茨鼓风机有限公司', '上海创精泵阀制造有限公司济南分公司', '济南航泰流体设备有限公司', '济南品盛机电设备有限公司', '济南金鼎诺泵业有限公司', '济南金科通经贸有限公司', '济南市槐荫区中大五金制造厂', '济南智胜时代科技有限公司', '山东德屹机电有限公司济南分公司', '天桥区大鹏开山空压机销售服务处', '济南锐博特机械设备有限公司', '济南优耐特斯工业设备有限公司', '济南海威营销服务有限公司', '贵州质真园暖通工程有限公司', '贵阳吉辉空调设备有限公司', '贵阳普洁环保节能技术有限公司', '刚刚网络经营部', '贵州子谦伟业机械技术发展有限公司', '贵州亿科电力电气设备有限公司', '清镇市顺成机械厂', '贵州世纪开元文化科技有限公司', '毕节市磊亿电器经营部', '贵阳永佳机械电器厂', '贵阳丰银商贸有限公司', '贵阳五交化电器网', '贵州独山鑫源矿业有限公司', '成都华塑管业有限公司', '成都国鑫家私', '绵阳市中海特钢有限责任公司', '江油市智达贸易有限公司', '上海太平洋制泵(集团)有限公司成都分公司', '兴文县三川不锈钢水泵有限公司', '重庆乾泉泵阀制造有限公司', '重庆市高新技术产业开发区旭冉机电经营部', '成都兴三台泵业有限公司', '佛山市恒方钢铁贸易有限公司', '东莞市长安意华模具钢材经营部', '上海厦鸿实业有限公司', '郑州安嘉电子科技有限公司', '广州奥特佳数控系统有限公司', '佛山苑庭家居装潢有限公司', '佛山市家家卫浴有限公司', '深圳市欣中讯科技有限公司', '温州市龙湾天河今创开关配件加工', '南昌市五华市场东楚电器材料批发部', '萍乡市上埠永胜电瓷厂', '温州大本电器有限公司', '成都穗陶卫浴洁具批发部', '南宁市双川卫浴批发部', '南昌市青山湖区中天建材经营部', '江西福泰安防技术有限公司', '南昌长运白云电器经销部', '福牌水暖器材制造厂', '吉水县金竹板业有限公司', '武汉煦源照明工程技术有限公司', '武汉鑫丰强电气有限公司', '武汉六角电工电器有限公司', '武汉市江汉区湘阳电子电器经营部', '武汉世纪维邦园林机械有限公司', '武汉桓源伟业设备制造有限公司', '武汉润永商贸有限公司', '赤壁市阿拉丁水晶灯饰店', '四川吉星光彩照明有限公司', '四川省天祥照明有限公司', '四川省正旺新能源照明科技有限公司', '四川合生力博机电设备有限公司', '四川始丰成套电器设备有限公司', '十堰佳奥实业发展有限公司', '鹰卫浴重庆旗舰店', '济南市天桥区百佳灯具商行', '重庆登勒卫浴', '诺贝尔卫浴旗舰店', '贵州艾科晋规划设计有限责任公司', '北京福达阳光太阳能设备厂', '青岛海尔家居集成股份有限公司北京分公司', '凯里市谭坚百货有限责任公司', '贵州肖林科技有限公司', '贵阳艺彩壁纸', '圣象卫浴贵阳专卖店', '黔味绝特产商贸有限公司', '贵州欣天阳光电科技有限公司', '北京维欣仪奥科技发展有限公司', '北京市顺达丰泰机电经销部', '北京航宇聚业科技发展有限公司', '北京九州环宇水处理设备有限公司', '北京格若科技有限公司', '北京森淼三峰机电设备有限公司', '泊头市八方油泵制造厂', '北京巨德力泳池水疗设备有限公司', '贵州金马车工贸有限责任公司', '凯里市芯沃电脑经营部', '森博尔特壁纸专卖', '北京老板电器销售有限公司', '美誉天成', '北京海华建达科技发展有限公司', '北京亚视创业科技发展有限公司', '北京市盛世鼎商贸有限责任公司', '北京至诚佳音电器商行', '北京百旺腾龙商贸有限公司销售部', '北京创世鸿锦科技发展有限公司', '北京利源易德桑拿设备有限公司', '昆明市官渡区涌泉普通机械经营部', '天桥区明达空调设备销售中心', '环球灯饰(济阳店)有限公司', '天桥区昌隆兴灯具商行', '武汉环润灌溉设备有限公司', '济南祥坤经贸有限公司', '广州好艺家感应洁具有限公司武汉分公司', '济南恒盛绝缘材料经销处', '济南海盛绝缘材料有限公司', '江西南翔空压机有限公司', '江西盈通实业有限公司南昌办事处', '江西省瑞洪泵业有限公司', '江西联信大市场新发机电商行', '南昌力亿机电设备有限公司', '济南亿源太阳能开发中心', '历下区传福家用电器销售中心', '济南槐荫清华太阳能厂', '济南子杰商贸有限公司', '济南章丘市巨龙锅炉厂', '济南鲁青电器', '章丘市鑫发石材厂', '章丘市桑园塑胶有限公司', '山东东方仪表电力设备成套有限责任公司'] for i in company_list: content={ "name": i } if "公司" in i: i = i.split('公司')[0] + "公司" url = "https://m.qichacha.com/search?" + "key={}".format(i) yield scrapy.Request(url=url, callback=self.parse, meta={"data": content}) def parse(self, response): content = response.meta["data"] # try: # company_name = response.xpath("//div[@class='list-item-name']").extract_first() # except: # print('公司没有找到') url_node = response.xpath("//a[@class='a-decoration']") # print(url_node) i = url_node[0].xpath("./@href").extract_first() url = "https://m.qichacha.com" + i print(url) print('-'*100) yield scrapy.Request(url=url, callback=self.parse_detail, meta={"data1":content}) def parse_detail(self, response): item = QichachaItem() item['search_name'] = response.meta["data1"]['name'] item['legal_person'] = response.xpath("//div[@class='oper-warp']/a/text()").extract_first() item['registration_number'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '注册号')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['credit_code'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '统一社会信用代码')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['registered_capital'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '注册资本')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['establishment_data'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '成立日期')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['enterprise_type'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '企业类型')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['management'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '经营范围')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['address'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '公司住所')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['term'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '营业期限')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['status'] = response.xpath("//div[@class='basic-item']/div[contains(text(), '企业状态')]/../div[@class='basic-item-right']/text()").extract_first().replace("'", '').strip().replace(" ",'') item['company_name'] = response.xpath("//div[@class='company-name']/text()").extract_first() try: item['telephone'] = response.xpath("//div[@class='contact-info-wrap']/a/text()").extract()[0] except Exception as e: print(e) try: item['email'] = response.xpath("//div[@class='contact-info-wrap']/a/text()").extract()[1] except: item['email'] = None yield item
    items.py
    # -*- coding: utf-8 -*-
    
    # Define here the models for your scraped items
    #
    # See documentation in:
    # https://doc.scrapy.org/en/latest/topics/items.html
    
    import scrapy
    
    # 企查查企业信息字段
    class QichachaItem(scrapy.Item):
        legal_person = scrapy.Field()  # 法人
        telephone = scrapy.Field()  # 电话
        email = scrapy.Field()  # 邮箱
        registration_number = scrapy.Field()  # 工商注册号
        credit_code = scrapy.Field()  # 统一社会信用代码
        registered_capital = scrapy.Field()  # 注册资本
        establishment_data = scrapy.Field()  # 成立日期
        enterprise_type = scrapy.Field()  # 企业类型
        management = scrapy.Field()  # 经营范围
        address = scrapy.Field()  # 公司住所
        term = scrapy.Field()  # 营业期限
        status = scrapy.Field()  # 企业状态
        company_name = scrapy.Field()  # 公司名称
        search_name = scrapy.Field()  # 搜索名称
    middlewares.py
    
    # -*- coding: utf-8 -*-
    
    # Define here the models for your spider middleware
    #
    # See documentation in:
    # https://doc.scrapy.org/en/latest/topics/spider-middleware.html
    import requests
    from scrapy import signals
    import random
    from scrapy.downloadermiddlewares.httpproxy import HttpProxyMiddleware
    from collections import defaultdict
    import json
    import logging
    
    
    class ZjplSpiderMiddleware(object):
        # Not all methods need to be defined. If a method is not defined,
        # scrapy acts as if the spider middleware does not modify the
        # passed objects.
    
        @classmethod
        def from_crawler(cls, crawler):
            # This method is used by Scrapy to create your spiders.
            s = cls()
            crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
            return s
    
        def process_spider_input(self, response, spider):
            # Called for each response that goes through the spider
            # middleware and into the spider.
    
            # Should return None or raise an exception.
            return None
    
        def process_spider_output(self, response, result, spider):
            # Called with the results returned from the Spider, after
            # it has processed the response.
    
            # Must return an iterable of Request, dict or Item objects.
            for i in result:
                yield i
    
        def process_spider_exception(self, response, exception, spider):
            # Called when a spider or process_spider_input() method
            # (from other spider middleware) raises an exception.
    
            # Should return either None or an iterable of Response, dict
            # or Item objects.
            pass
    
        def process_start_requests(self, start_requests, spider):
            # Called with the start requests of the spider, and works
            # similarly to the process_spider_output() method, except
            # that it doesn’t have a response associated.
    
            # Must return only requests (not items).
            for r in start_requests:
                yield r
    
        def spider_opened(self, spider):
            spider.logger.info('Spider opened: %s' % spider.name)
    
    
    class ZjplDownloaderMiddleware(object):
        # Not all methods need to be defined. If a method is not defined,
        # scrapy acts as if the downloader middleware does not modify the
        # passed objects.
    
        @classmethod
        def from_crawler(cls, crawler):
            # This method is used by Scrapy to create your spiders.
            s = cls()
            crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
            return s
    
        def process_request(self, request, spider):
            # Called for each request that goes through the downloader
            # middleware.
    
            # Must either:
            # - return None: continue processing this request
            # - or return a Response object
            # - or return a Request object
            # - or raise IgnoreRequest: process_exception() methods of
            #   installed downloader middleware will be called
            return None
    
        def process_response(self, request, response, spider):
            # Called with the response returned from the downloader.
    
            # Must either;
            # - return a Response object
            # - return a Request object
            # - or raise IgnoreRequest
            return response
    
        def process_exception(self, request, exception, spider):
            # Called when a download handler or a process_request()
            # (from other downloader middleware) raises an exception.
    
            # Must either:
            # - return None: continue processing this exception
            # - return a Response object: stops process_exception() chain
            # - return a Request object: stops process_exception() chain
            pass
    
        def spider_opened(self, spider):
            spider.logger.info('Spider opened: %s' % spider.name)
    
    
    # 随机更换 USER_AGENT
    class RandomUseragentMiddleware(object):
        def __init__(self):
            self.user_agent = [
                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1",
                "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0",
                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27",
                "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7",
                "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB5",
                "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0 )",
                "HTC_Dream Mozilla/5.0 (Linux; U; Android 1.5; en-ca; Build/CUPCAKE) AppleWebKit/528.5  (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1",
                "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
                "Mozilla/5.0 (Linux; U; Android 2.1; en-us; HTC Legend Build/cupcake) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17",
                "Mozilla/5.0 (Linux; U; Android 2.0; en-us; Milestone Build/ SHOLS_U2_01.03.1) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17",
                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)",
                "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C)",
                "Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.9.168 Version/11.50"
            ]
    
        def process_request(self, request, spider):
            request.headers["User-Agent"] = random.choice(self.user_agent)
    
    
    # 实现ip随机代理
    class RandomHttpProxyMiddleware(HttpProxyMiddleware):
        def __init__(self):
            pass
    
        def process_request(self, request, spider):
            pass
            request.headers['Proxy-Authorization'] = "ip和请求协议"
    
    
    
    class CookiesMiddleware(object):
    
        def __init__(self, cookies_url):
            self.logger = logging.getLogger(__name__)
            self.cookies_url = cookies_url
    
    
        def get_random_cookies(self):
            try:
                response = requests.get(self.cookies_url)
                if response.status_code == 200:
                    cookies = json.loads(response.text)
                    return cookies
            except requests.ConnectionError:
                return False
    
        def process_request(self, request, spider):
            self.logger.debug('正在获取Cookies')
            cookies = self.get_random_cookies()
            if cookies:
                request.cookies = cookies
                self.logger.debug('使用Cookies ' + json.dumps(cookies))
    
        @classmethod
        def from_crawler(cls, crawler):
            settings = crawler.settings
            return cls(
                cookies_url=settings.get('COOKIES_URL')
            )
    piplines.py
    
    # -*- coding: utf-8 -*-
    
    from scrapy.conf import settings
    import pymysql
    # from openpyxl import Workbook
    # import redis
    
    # 数据保存mysql
    class MysqlPipeline(object):
    
        def open_spider(self, spider):
            self.host = settings.get('MYSQL_HOST')
            self.port = settings.get('MYSQL_PORT')
            self.user = settings.get('MYSQL_USER')
            self.password = settings.get('MYSQL_PASSWORD')
            self.db = settings.get(('MYSQL_DB'))
            self.table = settings.get('TABLE')
            self.client = pymysql.connect(host=self.host, user=self.user, password=self.password, port=self.port, db=self.db, charset='utf8')
    
        def process_item(self, item, spider):
            item_dict = dict(item)
            cursor = self.client.cursor()
            values = ','.join(['%s'] * len(item_dict))
            keys = ','.join(item_dict.keys())
            sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=self.table, keys=keys, values=values)
            try:
                if cursor.execute(sql, tuple(item_dict.values())):  # 第一个值为sql语句第二个为 值 为一个元组
                    print('---------------------------------------------------成功---------------------------------------------------')
                    self.client.commit()
            except Exception as e:
                print(e)
                print('---------------------------------------------------失败---------------------------------------------------')
                self.client.rollback()
            return item
    
        def close_spider(self, spider):
            self.client.close()
    settings.py
    
    # -*- coding: utf-8 -*-
    
    BOT_NAME = 'ZJPL'
    
    SPIDER_MODULES = ['ZJPL.spiders']
    NEWSPIDER_MODULE = 'ZJPL.spiders'
    
    # mysql配置参数
    MYSQL_HOST = "172.16.10.157"
    MYSQL_PORT = 3306
    MYSQL_USER = "root"
    MYSQL_PASSWORD = "123456"
    MYSQL_DB = 'company_info'
    TABLE = "qichacha2"
    
    # # 测试mysql配置参数
    # MYSQL_HOST = "localhost"
    # MYSQL_PORT = 3306
    # MYSQL_USER = "root"
    # MYSQL_PASSWORD = "mysql"
    # MYSQL_DB = 'company_info'
    # TABLE = "qichacha"
    
    # # mongo配置参数
    # MONGO_HOST = "172.16.10.175"
    # MONGO_PORT = 27017
    # MONGO_DB = "gcw_data"
    # # MONGO_COL = "gcw"
    #
    # # redis 配置参数
    # REDIS_HOST = "172.16.2.226"
    # REDIS_PORT = 9000
    # REDIS_PASS = "abc123"
    # REDIS_DB = "1"
    
    # redis设置
    # REDIS_URL = 'redis://@127.0.0.1:6379'
    
    # 布隆过滤器
    BLOOMFILTER_HASH_NUMBER = 6
    BLOOMFILTER_BIT = 30
    
    # cookies
    COOKIES_URL = 'http://172.16.2.226:5000/gldjc/random'
    # log 配置参数
    # LOG_ENABLED = True
    # LOG_ENCODING = "utf-8"
    # LOG_STDOUT = True
    # LOG_FILE = "error.log"
    
    # Crawl responsibly by identifying yourself (and your website) on the user-agent
    # USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    
    # Obey robots.txt rules
    # ROBOTSTXT_OBEY = True
    
    # Configure maximum concurrent requests performed by Scrapy (default: 16)
    #CONCURRENT_REQUESTS = 32
    
    # Configure a delay for requests for the same website (default: 0)
    # See https://doc.scrapy.org/en/latest/topics/settings.html#download-delay
    # See also autothrottle settings and docs
    DOWNLOAD_DELAY = 1
    # The download delay setting will honor only one of:
    #CONCURRENT_REQUESTS_PER_DOMAIN = 16
    #CONCURRENT_REQUESTS_PER_IP = 16
    
    # Disable cookies (enabled by default)
    #COOKIES_ENABLED = False
    
    # Disable Telnet Console (enabled by default)
    #TELNETCONSOLE_ENABLED = False
    
    # Override the default request headers:
    #DEFAULT_REQUEST_HEADERS = {
    #   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    #   'Accept-Language': 'en',
    #}
    
    # Enable or disable spider middlewares
    # See https://doc.scrapy.org/en/latest/topics/spider-middleware.html
    #SPIDER_MIDDLEWARES = {
    #    'ZJPL.middlewares.ZjplSpiderMiddleware': 543,
    #}
    
    # Enable or disable downloader middlewares
    # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
    DOWNLOADER_MIDDLEWARES = {
    #  'ZJPL.middlewares.ZjplDownloaderMiddleware': 543,
    #    'ZJPL.middlewares.CookiesMiddleware': 550,
       'ZJPL.middlewares.RandomUseragentMiddleware': 500,
    
    }
    
    # url去重配置
    # DUPEFILTER_CLASS = 'gldjc_detail.duplication.RepeatUrl'
    # Enable or disable extensions
    # See https://doc.scrapy.org/en/latest/topics/extensions.html
    #EXTENSIONS = {
    #    'scrapy.extensions.telnet.TelnetConsole': None,
    #}
    
    # Configure item pipelines
    # See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
    # ITEM_PIPELINES = {
        # 'ZJPL.pipelines.MongoPipeline': 300,
        # 'ZJPL.pipelines.MysqlPipeline': 320,
        # 'ZJPL.pipelines.TuniuPipeline': 200,
        # 'ZJPL.pipelines.RedisPipeline': 310,
    # }
    
    # Enable and configure the AutoThrottle extension (disabled by default)
    # See https://doc.scrapy.org/en/latest/topics/autothrottle.html
    #AUTOTHROTTLE_ENABLED = True
    # The initial download delay
    #AUTOTHROTTLE_START_DELAY = 5
    # The maximum download delay to be set in case of high latencies
    #AUTOTHROTTLE_MAX_DELAY = 60
    # The average number of requests Scrapy should be sending in parallel to
    # each remote server
    #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
    # Enable showing throttling stats for every response received:
    #AUTOTHROTTLE_DEBUG = False
    
    # Enable and configure HTTP caching (disabled by default)
    # See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
    #HTTPCACHE_ENABLED = True
    #HTTPCACHE_EXPIRATION_SECS = 0
    #HTTPCACHE_DIR = 'httpcache'
    #HTTPCACHE_IGNORE_HTTP_CODES = []
    #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
  • 相关阅读:
    vue学习笔记(四)---- 品牌管理案例
    vue学习笔记(三)---- vue-resource
    vue学习笔记(二) ---- vue实例的生命周期
    vue学习笔记(一) ---- vue指令(总体大纲)
    vue学习笔记(一)---- vue指令(在vue中使用样式的方式)
    【问题记录】—.NetCore 编译问题
    Docker学习—概念及基本应用
    Consul 学习笔记-服务注册
    认证授权:IdentityServer4
    认证授权:IdentityServer4
  • 原文地址:https://www.cnblogs.com/lvjing/p/9970662.html
Copyright © 2020-2023  润新知