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

建设厅科技中心网站wordpress友情链接单页

建设厅科技中心网站,wordpress友情链接单页,最新域名查询访问,wordpress导航 t一、引言 本架构设计文档旨在阐述基于 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.yayakq.cn/news/363850/

相关文章:

  • 绵阳网站开发深圳的建站公司
  • 咸阳网站开发公司十大收益最好的自媒体平台
  • 国外销售网站企业网站系统源码
  • 怎么查网站的关键词排名wordpress局域网自定义域名
  • 龙陵县住房和城乡建设局网站网页策划案的范文
  • 玉溪市住房和建设局公布网站如何在自己的电脑上做网站
  • 专业做房地产网站建设企业所得税优惠政策最新2024
  • 上海网站制作哪家奿网站建设公司怎么发展
  • 网站流量不正常国外在线crm系统suitecrm
  • owasp 网站开发知名高端网站设计企业
  • 可以做视频推广的网站吗做网站分页
  • 网站上的公告怎么做参考文献桂林网站建设 腾云
  • 仙桃做网站找谁厚街仿做网站
  • 湖北什么网站建设值得推荐wordpress评论显示游客
  • html5自适应网站源码徐州网站建设方案
  • 西安电子商务网站建设网络规划设计师报考
  • 网上家教网站开发做ic哪些网站好做
  • 湖北营销型网站建设公司上海市网站制作
  • 个人网站怎么做cps哪个网站做ppt
  • seo 网站关键词营销网络分布情况
  • 英文网站seo如何做土豆做视频在线观看网站
  • 可以免费制作网页的网站wordpress 评论 关闭
  • 网站建设的类型南城网站建设公司报价
  • 网站建设完工确认书网站建设制作怎么弄
  • 江西建设厅特殊工种的网站wordpress 建网站 vpn
  • 铜山网站开发万创网做的网站怎么样
  • 网站欢迎页制作做面食专业网站
  • 网站续费通知做外贸网站外包
  • 网站建设基本流程价格做网站挂广告
  • 做个企业网站大概多少费用最好用的导航软件是哪一个