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

网站做等报定级工作要多久上海网络推广团队

网站做等报定级工作要多久,上海网络推广团队,网站流量统计实现,微信小程序平台设计一、引言 本架构设计文档旨在阐述基于 Selenium 的电商商品信息采集系统的整体架构,包括系统视图、逻辑视图、物理视图、开发视图和进程视图,并提供一个简单的采集电商商品信息的 demo。该系统通过模拟浏览器行为,实现对电商商品信息的自…

一、引言    

          

本架构设计文档旨在阐述基于 Selenium 的电商商品信息采集系统的整体架构,包括系统视图、逻辑视图、物理视图、开发视图和进程视图,并提供一个简单的采集电商商品信息的 demo。该系统通过模拟浏览器行为,实现对电商商品信息的自动化抓取,为数据分析、市场研究等提供数据支持。

          

京东获得JD商品详情 API 返回值说明

item_get-获得JD商品详情 

jd.item_get

公共参数

名称类型必须描述
keyString调用key(必须以GET方式拼接在URL中)
secretString调用密钥
api_nameStringAPI接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]
cacheString[yes,no]默认yes,将调用缓存的数据,速度比较快
result_typeString[json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读
langString[cn,en,ru]翻译语言,默认cn简体中文
versionStringAPI版本

请求参数

请求参数:num_iid=10335871600

参数说明:num_iid:JD商品ID

响应参数

Version: Date:

名称类型必须示例值描述

item

item[]0获得JD商品详情

二、系统视图

          

系统视图描述了系统的整体结构和功能模块。本采集系统主要包括以下几个模块:

          

(1)多终端接入

支持微信小程序、Android、IOS、PC 网页任意一个入口。

(2)用户界面模块

负责与用户进行交互,提供采集任务配置、启动、停止等操作界面。

(3)爬虫管理模块

负责调度和管理爬虫任务,包括任务队列、任务状态监控等。  

(4)数据解析模块    

负责对采集到的网页数据进行解析,提取商品信息。

(5)数据存储模块

负责将解析后的商品信息存储到数据库或文件中。

(6)代理管理模块

负责代理服务器的获取、验证和管理。

为爬虫任务提供可用的代理 IP,确保 IP 高可用。    

监控代理服务器的状态,及时剔除不可用的代理。

          

三、逻辑视图

          

逻辑视图展示了系统内部的功能划分和模块间的交互关系,从用户视角描述系统有什么功能。本采集系统的逻辑视图如下:

          

(1)用户通过用户界面模块配置采集任务,包括目标 URL、采集深度、抓取字段等。

(2)用户界面模块将配置信息传递给爬虫管理模块,爬虫管理模块根据配置信息创建爬虫任务,并将其加入任务队列。  

(3)爬虫管理模块调度 Selenium 驱动浏览器进行网页加载和渲染,模拟用户操作进行页面滚动、点击等。

(4)Selenium 将加载完成的页面数据返回给爬虫管理模块,爬虫管理模块将页面数据传递给数据解析模块。

(5)数据解析模块使用正则表达式或 XPath 等方法对页面数据进行解析,提取出商品信息。

(6)提取的商品信息被传递给数据存储模块,数据存储模块将其存储到数据库或文件中。

(7)代理池构建

代理管理模块首先会从各种来源(如免费代理网站、付费代理服务)获取代理 IP。    

对获取的代理 IP 进行验证,确保其可用性和匿名性。

将验证通过的代理 IP 存入代理池,供爬虫任务使用。

(8)代理调度

当爬虫任务启动时,代理管理模块会从代理池中选取一个可用的代理 IP。

将选取的代理 IP 配置到 Selenium WebDriver中,确保爬虫任务通过该代理进行网页请求。

监控代理 IP 的使用情况,如请求次数、响应时间等,以便及时更换。

          

(9)代理维护

          

定期对代理池中的代理 IP 进行验证,剔除不可用的代理。    

根据代理 IP 的使用情况,动态调整代理池的权重,优先使用性能更好的代理。

当代理池中的可用代理数量低于阈值时,自动从来源处获取新的代理 IP 进行补充。

          

四、物理视图

          

物理视图描述了系统在实际环境中的部署情况,包括硬件、网络、软件等资源的配置。本采集系统的物理视图如下:

          

采用微服务架构,分布式部署,每个服务都实现容器化,整个微服务集群部署在 K8S 集群上,可以扩展支持多云部署。    

图片

五、开发视图

          

开发视图展示了系统的代码结构和开发过程中的模块划分。本采集系统的开发视图如下:

          

整体采用微服务架构,容器化部署。

系统采用多语言开发,包括 Java、Python 语言进行开发,利用 Selenium 库模拟浏览器行为,进行网页数据的抓取。

系统代码分为多个模块和函数,每个模块和函数负责特定的功能,实现代码的高内聚和低耦合。

代码使用版本控制工具(如Git)进行管理,确保代码的可追溯性和可维护性。

              

图片

          

六、进程视图

          

系统启动后,主进程负责初始化系统环境和加载配置信息。

根据配置信息,主进程创建爬虫任务,并启动子进程执行爬虫任务。

每个爬虫任务对应一个子进程,子进程使用 Selenium 驱动浏览器进行网页加载和渲染,模拟用户操作进行页面抓取。

子进程将抓取到的页面数据传递给主进程进行解析和存储。

主进程负责监控子进程的运行状态,确保任务的正常执行。

              

图片

          

七、Demo 示例

          

下面是一个简单的基于 Selenium 的电商商品信息采集 demo,用于演示系统的基本功能。

from selenium import webdriver                    
from selenium.webdriver.common.by import By                    
from selenium.webdriver.support.ui import WebDriverWait                    
from selenium.webdriver.support import expected_conditions as EC                    
                    
def fetch_product_info(url, driver_path):                    
    # 设置Firefox驱动路径                  
    print(driver_path)                    
    driver = webdriver.Firefox(executable_path=driver_path)                    
                 
                        
    try:                    
        driver.get(url)                    
                            
        d = {}                  
                            
        # 尝试查找商品标题                  
        #title = driver.find_element(By.CSS_SELECTOR, '#J_Title').text                    
        title = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="1081181309095"]/div/div/div[1]/div[2]')))                    
        print(f"商品标题: {title}")                    
        d['title'] = title.text                  
                            
        # 尝试查找商品价格                  
                          
        price = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="1081181309582"]/div/div/div[2]/div/div[2]/div[1]/div[1]/span[2]')))                  
        print(f"商品价格: {price}")                    
        d['price'] = price.text                  
                            
        volume = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="1081181309095"]/div/div/div[3]/div[1]/div[3]/span[2]')))                  
        d['volume'] = volume.text                  
                 
        for key, value in d.items():                    
            print(key, value)                  
                            
    except Exception as e:                    
        print(f"发生错误: {e}")                    
    finally:                    
        # 关闭浏览器窗口                    
        driver.quit()                    
                    
# 使用示例                  
fetch_product_info("https://detail.1688.com/offer/760030959718.html?spm=a360g.21173732.0.0.5f62410cJR8kXo", 'geckodriver.exe')        

代码运行后:

图片

我们成功获取到了需要提取的内容:    

title 跨境热销水波纹投影灯动态北极光卧室星空梦幻音乐户外露

price ¥60.00~¥130.00

volume 80+

          

我们可以查看一下待爬取的网页:

图片

http://www.dinnco.com/news/20360.html

相关文章:

  • 明年做哪个网站致富焊工培训班
  • 网站建设加盟哪个好百度域名注册
  • 网站建设云南才力查域名ip地址查询
  • 陕西建设厅特种作业报名入口手机网络优化软件
  • 品牌推广全案网站快速排名优化价格
  • 运城网站建设公司win7系统优化大师
  • 网站的主要功能成都新闻今日最新消息
  • 网站建设图标杭州网站优化平台
  • 简介网站建设流程seo如何快速排名百度首页
  • 包包网站建设深圳百度关键
  • wap手机建站平台福州seo扣费
  • 网站申请seo竞价
  • 慕课网网站开发背景网络推广优化服务
  • 广州商城网站开发app制作费用一览表
  • 青年旅舍 wordpress 模版珠海百度推广优化排名
  • wap网站 开发全国网站排名
  • 网站建设贴吧百度seo发包工具
  • 网站开发的前端到底是什么网络营销公司热线电话
  • 使用css3动画特效做的网站找关键词的方法与技巧
  • wordpress 主题不显示福州seo按天收费
  • 做服装网站企业网络推广
  • 线上海报设计网站全网推广推荐
  • 手机应用开发平台百度视频seo
  • 微网站案例志鸿优化设计答案
  • 中央两学一做专题网站今日热点新闻排行榜
  • 中山市做网站公司seo上海培训
  • 竞价网站与竞价网站之间做友情链接平台搭建
  • 模板网站修改教程关键词优化推广公司
  • 爱是做的电影网站seo实战培训视频
  • 做营销网站建设挣钱吗厦门网站到首页排名