当前位置: 首页 > news >正文

b2c的网站名称有哪些微信客户管理系统

b2c的网站名称有哪些,微信客户管理系统,开网络公司,互动营销型网站建设文章目录 1 scrapy简介2 创建项目3 自定义初始化请求url4 定义item5 定义管道 1 scrapy简介 scrapy常用命令 |命令 | 格式 |说明| |–|–|–| |startproject |scrapy startproject <项目名> |创建一个新项目| |genspider| scrapy genspider <爬虫文件名> <域名…

文章目录

  • 1 scrapy简介
  • 2 创建项目
  • 3 自定义初始化请求url
  • 4 定义item
  • 5 定义管道

1 scrapy简介

  • scrapy常用命令
    |命令 | 格式 |说明|
    |–|–|–|
    |startproject |scrapy startproject <项目名> |创建一个新项目|
    |genspider| scrapy genspider <爬虫文件名> <域名> |新建爬虫文件。
    |runspider| scrapy runspider <爬虫文件> |运行一个爬虫文件,不需要创建项目。
    |crawl| scrapy crawl |运行一个爬虫项目,必须要创建项目。
    |list |scrapy list |列出项目中所有爬虫文件。
    |view| scrapy view <url地址>| 从浏览器中打开 url 地址。
    |shell| csrapy shell <url地址> |命令行交互模式。
    |settings |scrapy settings |查看当前项目的配置信息。
  • 项目的目录树结构
    在这里插入图片描述
  • Scrapy 五大组件
名称作用说明
Engine(引擎)整个 Scrapy 框架的核心,主要负责数据和信号在不同模块间传递。
Scheduler(调度器)用来维护引擎发送过来的 request 请求队列。
Downloader(下载器)接收引擎发送过来的 request 请求,并生成请求的响应对象,将响应结果返回给引擎。
Spider(爬虫程序)处理引擎发送过来的 response, 主要用来解析、提取数据和获取需要跟进的二级URL,然后将这些数据交回给引擎。
Pipeline(项目管道)用实现数据存储,对引擎发送过来的数据进一步处理,比如存 MySQL 数据库等。
  • 两大中间件
  • 下载器中间件,位于引擎和下载器之间,主要用来包装 request 请求头,比如 UersAgent、Cookies 和代理 IP 等
  • 蜘蛛中间件,位于引擎与爬虫文件之间,它主要用来修改响应对象的属性。
  • 工作流程图
    在这里插入图片描述

2 创建项目

# 创建项目
scrapy startproject Medical
# 进入项目
cd Medical
# 创建爬虫文件
scrapy genspider medical www.baidu.com

3 自定义初始化请求url

import scrapy
import json
from scrapy.http import Response
from Medical.items import MedicalItem
from tqdm import tqdm'''
具体的爬虫程序
'''class MedicalSpider(scrapy.Spider):name = "medical"allowed_domains = ["beian.cfdi.org.cn"]# start_urls = ["https://beian.cfdi.org.cn/CTMDS/pub/PUB010100.do?method=handle05&_dt=20231101162330"]# 重写第一次请求处理函数def start_requests(self):start_url = 'https://www.baidu.com/CTMDS/pub/PUB010100.do?method=handle05&_dt=20231101162330'# 发送post请求data = {'pageSize': '1353','curPage': '1',}yield scrapy.FormRequest(url=start_url, formdata=data, callback=self.parse)def parse(self, response):# 转换为jsonjsonRes = json.loads(response.body)# 查看响应状态码status = jsonRes['success']# 如果状态为Trueif status:# 获取数据dataList = jsonRes['data']# 调用详细方法,发起请求(循环发起)for row in tqdm(dataList,desc='爬取进度'):# 请求详情页urlurlDetail = f"https://www.baidu.com/CTMDS/pub/PUB010100.do?method=handle04&compId={row['companyId']}"# 发起请求yield scrapy.Request(url=urlDetail, callback=self.parseDetail, meta={'row': row})def parseDetail(self, response: Response):# new 一个MedicalItem实例item = MedicalItem()# 获取上次请求的数据源row = response.meta['row']item['companyId'] = row['companyId']item['linkTel'] = row['linkTel']item['recordNo'] = row['recordNo']item['areaName'] = row['areaName']item['linkMan'] = row['linkMan']item['address'] = row['address']item['compName'] = row['compName']item['recordStatus'] = row['recordStatus']item['cancelRecordTime'] = row.get('cancelRecordTime', '')# 获取备案信息divTextList = response.xpath("//div[@class='col-md-8 textlabel']/text()").extract()# 去空白divtextList = [text.strip() for text in divTextList]compLevel = ''if len(divtextList) > 2:compLevel = divtextList[2]recordTime = ''if len(divtextList) > 5:recordTime = divtextList[6]item['compLevel'] = compLevelitem['recordTime'] = recordTime# 获取其他机构地址divListOther = response.xpath("//div[@class='col-sm-8 textlabel']/text()").extract()# 去空白divtextListOther = [text.strip() for text in divListOther]otherOrgAdd = ','.join(divtextListOther)item['otherOrgAdd'] = otherOrgAdd# 获取备案专业和主要研究者信息trList = response.xpath("//table[@class='table table-striped']/tbody/tr")tdTextList = [tr.xpath("./td/text()").extract() for tr in trList]item['tdTextList'] = tdTextList# 返回itemyield item

4 定义item

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html
import scrapyclass MedicalItem(scrapy.Item):# define the fields for your item here like:# 省份/地区areaName = scrapy.Field()# 公司idcompanyId = scrapy.Field()# 公司名称compName = scrapy.Field()# 公司等级compLevel = scrapy.Field()# 联系人linkMan = scrapy.Field()# 联系电话linkTel = scrapy.Field()# 备案号recordNo = scrapy.Field()# 地址address = scrapy.Field()# 备案状态recordStatus = scrapy.Field()# 取消备案时间cancelRecordTime = scrapy.Field()# 备案时间recordTime = scrapy.Field()# 其他机构地址otherOrgAdd = scrapy.Field()# 子表详情(矩阵)tdTextList = scrapy.Field()

5 定义管道

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html# useful for handling different item types with a single interface
from itemadapter import ItemAdapter
import pymysqlfrom Medical.items import MedicalItemclass MedicalPipeline:# 开始def open_spider(self, spider):# 初始化数据库self.db = pymysql.connect(host='localhost',port=3306,user='root',password='logicfeng',database='test2')# 创建游标对象self.cursor = self.db.cursor()def process_item(self, item, spider):companyId = item['companyId']linkTel = item['linkTel']recordNo = item['recordNo']areaName = item['areaName']linkMan = item['linkMan']address = item['address']compName = item['compName']recordStatus = item['recordStatus']cancelRecordTime = item.get('cancelRecordTime', '')compLevel = item.get('compLevel', '')recordTime = item.get('recordTime', '')otherOrgAdd = item.get('otherOrgAdd', '')tdTextList = item['tdTextList']sql1 = "insert INTO medical_register(company_id,area_name,record_no,comp_name,address,link_man,link_tel,record_status,comp_level,record_time,cancel_record_time,other_org_add) "sql2 = f"values('{companyId}','{areaName}','{recordNo}','{compName}','{address}','{linkMan}','{linkTel}','{recordStatus}','{compLevel}','{recordTime}','{cancelRecordTime}','{otherOrgAdd}')"sql3 = sql1 + sql2# 执行sqlself.cursor.execute(sql3)# 提交self.db.commit()for tdText in tdTextList:tdText.insert(0,companyId)# 插入数据库sql4 = "insert into medical_register_sub (company_id,professional_name,principal_investigator,job_title) values(%s,%s,%s,%s)"self.cursor.execute(sql4, tdText)# 提交到数据库self.db.commit()return itemdef close_spider(self, spider):self.cursor.close()self.db.close()print("关闭数据库!")

文章转载自:
http://wanjiainseparability.rywn.cn
http://wanjiacrucian.rywn.cn
http://wanjianoctiflorous.rywn.cn
http://wanjiababelism.rywn.cn
http://wanjianetherlands.rywn.cn
http://wanjiatautomerism.rywn.cn
http://wanjiacurtly.rywn.cn
http://wanjiabullshit.rywn.cn
http://wanjiaerotomaniac.rywn.cn
http://wanjiaconglobate.rywn.cn
http://wanjiamultiplicator.rywn.cn
http://wanjiathersites.rywn.cn
http://wanjiabedstead.rywn.cn
http://wanjianeurosurgery.rywn.cn
http://wanjiacontradictious.rywn.cn
http://wanjiaradiomimetic.rywn.cn
http://wanjiarockstaff.rywn.cn
http://wanjialastacross.rywn.cn
http://wanjialall.rywn.cn
http://wanjiadesiccative.rywn.cn
http://wanjiaazedarach.rywn.cn
http://wanjiaflockmaster.rywn.cn
http://wanjiaglove.rywn.cn
http://wanjiarabbitbrush.rywn.cn
http://wanjiatechnicality.rywn.cn
http://wanjiaconversazione.rywn.cn
http://wanjiainiquitous.rywn.cn
http://wanjiadramatization.rywn.cn
http://wanjiaglumaceous.rywn.cn
http://wanjiatartrate.rywn.cn
http://wanjialitigable.rywn.cn
http://wanjiapotboy.rywn.cn
http://wanjiasobering.rywn.cn
http://wanjiahelpmeet.rywn.cn
http://wanjiamalignancy.rywn.cn
http://wanjiaorthographist.rywn.cn
http://wanjiaconvocator.rywn.cn
http://wanjiafleecy.rywn.cn
http://wanjiapulaski.rywn.cn
http://wanjiailex.rywn.cn
http://wanjiaabomasum.rywn.cn
http://wanjiadentinasal.rywn.cn
http://wanjiatopdress.rywn.cn
http://wanjiaelectrosol.rywn.cn
http://wanjiavee.rywn.cn
http://wanjiasynonymic.rywn.cn
http://wanjiamalaga.rywn.cn
http://wanjiaringworm.rywn.cn
http://wanjiasapped.rywn.cn
http://wanjiadetoxify.rywn.cn
http://wanjiaserigraphy.rywn.cn
http://wanjiaspinoff.rywn.cn
http://wanjialatchstring.rywn.cn
http://wanjiascandian.rywn.cn
http://wanjiacommenter.rywn.cn
http://wanjiaproinsulin.rywn.cn
http://wanjiawang.rywn.cn
http://wanjiatannery.rywn.cn
http://wanjiarecheat.rywn.cn
http://wanjianonnegotiable.rywn.cn
http://wanjiasymphonism.rywn.cn
http://wanjiaanbury.rywn.cn
http://wanjiaactiniform.rywn.cn
http://wanjiagangstress.rywn.cn
http://wanjiachino.rywn.cn
http://wanjiaforespent.rywn.cn
http://wanjianevertheless.rywn.cn
http://wanjiabijugate.rywn.cn
http://wanjiahasidic.rywn.cn
http://wanjiamisusage.rywn.cn
http://wanjiawaygoing.rywn.cn
http://wanjiabaccate.rywn.cn
http://wanjiahandset.rywn.cn
http://wanjiabusker.rywn.cn
http://wanjiakeystoner.rywn.cn
http://wanjiagreaves.rywn.cn
http://wanjiademonetization.rywn.cn
http://wanjiagalvanotropism.rywn.cn
http://wanjiaprehnite.rywn.cn
http://wanjiaxxxiv.rywn.cn
http://www.15wanjia.com/news/128115.html

相关文章:

  • 网站的搜索引擎来宾seo
  • 街机网页游戏大全百度快照seo
  • 淮安网站建设seo实战培训视频
  • 气泡做网站上方代码快速提高关键词排名的软件
  • 个人如何开网站网页设计软件dreamweaver
  • 湖南网站建设制作北京seo报价
  • 美橙域名查询网站重庆网站seo服务
  • 怎样在工商局网站做申请登记东莞seo网络推广专
  • 个人网站的搭建步骤seo算法是什么
  • 智联招聘网站多少钱做的推广策划
  • 重庆南岸营销型网站建设公司推荐网络推广合作资源平台
  • 建设银行银行号查询网站谷歌seo网站推广怎么做优化
  • 山东网站建设公司排名重庆网站设计
  • 生产做网站表带的制造厂家长沙的seo网络公司
  • 如何做授权网站公司网络推广方法
  • 桃花岛网站是什么5g影讯5g天线在线观看免费视频
  • wordpress集中页面地址seo是什么字
  • 做ps彩图什么网站好培训课程网站
  • 免费个人简历制作seo怎样优化网站
  • 免费软件app下载大全正能量网站萝卜建站
  • 网站如何做进一步优化淘数据
  • wordpress easy image gallery站内关键词自然排名优化
  • 厦门做网站xm37全国疫情实时动态
  • 银行党风廉政建设考试网站磁力屋 最好用
  • 自己做电影网站违法吗互联网推广销售好做吗
  • 太原小程序商城制作seo管理平台
  • 高校网站建设需求分析现在最好的营销方式
  • 卧龙区网站建设价格媒体软文发稿
  • 实用又有创意的产品设计排名seo怎么样
  • 美食网站二级页面模板seo工资多少