数据采集:selenium 获取某网站CDN 商家排名信息

这篇具有很好参考价值的文章主要介绍了数据采集:selenium 获取某网站CDN 商家排名信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面


  • 工作中遇到,简单整理
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


采集流程:

  1. 自动登陆
  2. 获取商家排名页当前页数据
  3. 获取总页数,和下一页对应元素
  4. 根据总页数 循环遍历,模拟点击下一页获取数据分页数据
  5. 数据汇总
from seleniumwire import webdriver
import json
import time
from selenium.webdriver.common.by import By
import pandas as pd


# 自动登陆
driver = webdriver.Chrome()
with open('C:\\Users\山河已无恙\\Documents\GitHub\\reptile_demo\\demo\\cookie.txt', 'r', encoding='u8') as f:
    cookies = json.load(f)

driver.get('https://cdn.chinaz.com/')
for cookie in cookies:
    driver.add_cookie(cookie)

driver.get('https://cdn.chinaz.com/')

time.sleep(6)
#CND 商家排行获取 https://cdn.chinaz.com/
CDN_Manufacturer = []
new_div_element = driver.find_element(By.CSS_SELECTOR, ".toplist-main")
div_elements = new_div_element.find_elements(By.CSS_SELECTOR, ".ullist")
#CDN_Manufacturer.extend(div_elements)
for mdn_ms in div_elements:
    a_target = mdn_ms.find_element(By.CSS_SELECTOR,".tohome")
    home_url = a_target.get_attribute('href')
    print(mdn_ms.text)
    text_temp =  str(mdn_ms.text).split("\n")
    CDN_Manufacturer.append({
       "公司名称": text_temp[0],
       "官网地址": home_url,
       "经营资质":  text_temp[1],
       "CDN网站数量":  text_temp[2],
       "网站占比": text_temp[3],
       "IP节点":text_temp[4],
       "IP占比":text_temp[5],

    })
sum_page = driver.find_element(By.XPATH,"//a[contains(@title, '尾页')]")
attribute_value = sum_page.get_attribute('val')

print(attribute_value)
for page in range(1,int(attribute_value)):
    next_page = driver.find_element(By.XPATH,"//a[contains(@title, '下一页')]")
    next_page.click()
    time.sleep(5)
    new_div_element = driver.find_element(By.CSS_SELECTOR, ".toplist-main")
    div_elements = new_div_element.find_elements(By.CSS_SELECTOR, ".ullist")
    #CDN_Manufacturer.extend(div_elements)
    for mdn_ms in div_elements:
        a_target = mdn_ms.find_element(By.CSS_SELECTOR,".tohome")
        home_url = a_target.get_attribute('href')
        print(mdn_ms.text)
        text_temp =  str(mdn_ms.text).split("\n")
        CDN_Manufacturer.append({
           "公司名称": text_temp[0],
           "官网地址": home_url,
           "经营资质":  text_temp[1],
           "CDN网站数量":  text_temp[2],
           "网站占比": text_temp[3],
           "IP节点":text_temp[4],
           "IP占比":text_temp[5],

        })

#print(CDN_Manufacturer)    
#a_list =  page_element.find_elements(By.TAG_NAME,"a")
for mdn_ms in CDN_Manufacturer:
    #divs =  mdn_ms.find_elements(By.XPATH,"//div")
    pass


df = pd.DataFrame(CDN_Manufacturer)

# 将数据保存为CSV文件
df.to_csv('CDN_Manufacturer.csv', index=False)

print("数据已保存为CSV文件")


pd 直接打印 生成结果

数据已保存为CSV文件
       公司名称                                      官网地址  ...    IP节点   IP占比
0     百度云加速  https://cloud.baidu.com/product/cdn.html  ...   92100   4.7%
1       阿里云                   https://www.aliyun.com/  ...  238994  12.3%
2       腾讯云                https://cloud.tencent.com/  ...   57212   2.9%
3   知道创宇云防御                https://www.yunaq.com/jsl/  ...   16333   0.8%
4        网宿            http://www.chinanetcenter.com/  ...   67683   3.5%
..      ...                                       ...  ...     ...    ...
67    睿江CDN                       http://www.efly.cc/  ...       1   <0.1
68    领智云画科              http://www.linkingcloud.com/  ...       6   <0.1
69     郑州珑凌                    http://www.lonlife.cn/  ...       1   <0.1
70   中国联合网络                    http://www.wocloud.cn/  ...       2   <0.1
71   极兔云CDN                  https://www.jitucdn.com/  ...       9   <0.1

数据可视化

通过 pyecharts 对数据做简单可视化

def to_echarts(CDN_Manufacturer):
    from pyecharts.charts import Bar
    from pyecharts import options as opts
    # 内置主题类型可查看 pyecharts.globals.ThemeType
    from pyecharts.globals import ThemeType
    xaxis =  [ cdn["公司名称"] for cdn in   CDN_Manufacturer ][:10]
    yaxis1 =  [ cdn["CDN网站数量"] for cdn in   CDN_Manufacturer ][:10]
    yaxis2 =  [ cdn["IP节点"] for cdn in   CDN_Manufacturer ][:10]
    bar = (
        Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
        .add_xaxis(xaxis)
        .add_yaxis("CDN网站数量", yaxis1)
        .add_yaxis("IP节点", yaxis2)
        .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)  
    bar.render()

数据采集:selenium 获取某网站CDN 商家排名信息,Python 笔记,数据采集,selenium,测试工具

也可以考虑其他一些可视化工具

Matplotlib:Matplotlib 是 Python 中最常用的数据可视化库之一,提供了广泛的绘图功能,包括折线图、散点图、柱状图、饼图等。它可以用于创建静态图表和交互式图形,并且可以高度定制。

Seaborn:Seaborn 是基于 Matplotlib 的统计数据可视化库,专注于统计图表和信息可视化。Seaborn 提供了更高级的统计图表类型,并具有更好的默认样式和颜色主题。

Plotly:Plotly 是一个交互式可视化库,可创建高度定制化的图表和可视化界面。Plotly 提供了丰富的图表类型,包括折线图、散点图、柱状图、热力图等,并支持创建交互式的仪表盘和可视化应用。

Bokeh:Bokeh 是一个用于创建交互式图表和可视化的库,具有强大的绘图能力和跨平台的支持。Bokeh 可以生成 HTML、JavaScript 和 WebGL,从而实现跨浏览器和跨设备的可视化。

Altair:Altair 是一个声明式的数据可视化库,使用简单的 Python 语法生成可视化图表。Altair 基于 Vega-Lite 规范,具有清晰的语法和简洁的API。

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告


<pyecharts: https://pyecharts.org/#/zh-cn/quickstart>

<Matplotlib: https://github.com/matplotlib/matplotlib>

<Seaborn: https://github.com/seaborn/seaborn>

<Plotly: https://github.com/plotly/plotly.py>

<Bokeh: https://github.com/bokeh/bokeh>

<Altair: https://github.com/altair-viz/altair>


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)文章来源地址https://www.toymoban.com/news/detail-675752.html

到了这里,关于数据采集:selenium 获取某网站CDN 商家排名信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言爬虫采集图书网站百万数据

    最近需要查阅一些资料,只给到相关项目名称以及,想通过图书文库找到对应书籍,那么怎么才能在百万数据库中找到自己需要的文献呢? 今天我依然用C语言写个爬虫程序,从百万数据库中查找到适合的文章,能节省很多事情。 下面是一个简单的C#爬虫程序,它使用

    2024年01月21日
    浏览(47)
  • Python 网络数据采集(四):Selenium 自动化

    作者:高玉涵 时间:2024.1.11 08:30 博客:blog.csdn.net/cg_i 环境:Windows 10 专业版 22H2、Python 3.10.4、selenium 4.10.0 前言 在 WEB 功能测试领域,Selenium 是一个免费、开源、跨平台的重要工具,它可以对 Chrome、Firefox、Safari 等浏览器进行测试,支持多种语言(如 Python、Java、C#、Ruby、J

    2024年01月16日
    浏览(55)
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(三)

    第三章 数据采集 掌握 HDFS API 的基本使用 熟悉 HttpClent 爬虫的使用方法 本篇主要对要采集的数据结构进行分析以及创建编写数据采集程序的环境,为最终编写数据采集程序做准备。 在爬取网站数据前要先通过分析网站的源码结构制定爬虫程序的编写方式,以便能获取准确的

    2024年02月11日
    浏览(51)
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(一)

    掌握项目需求和目标 了解项目架构设计和技术选型 了解项目环境和相关开发工具 理解项目开发流程 在人力资源管理领域,网络招聘近年来早已凭借其范围广、信息量大、时效性强、流程简单而效果显著等优势,成为企业招聘的核心方式。随着大数据渐渐融入人类社会生活的

    2024年02月02日
    浏览(58)
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(二)

    第二章 搭建大数据集群环境 了解虚拟机的安装和克隆 熟悉虚拟机网络配置和 SSH 服务配置 掌握 Hadoop 集群的搭建 熟悉 Hive 的安装 掌握 Sqoop 的安装 搭建大数据集群环境是开发本项目的基础。本篇将通过在虚拟机中构建多个Linux操作系统的方式来搭建大数据集群环境。 Hadoop本

    2024年02月11日
    浏览(49)
  • 基于selenium和bs4的通用数据采集技术(附代码)

    本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概述 Visual Studio Code及Remote

    2024年04月14日
    浏览(41)
  • 常用的数据采集工具有哪些-免费获取数据信息的工具有哪些

    随着社会不停地发展。人们也是越来越离不开互联网,常用的数据采集工具有哪些?今天小编就给大家盘点一下免费好用的数据采集工具,只需要点几下鼠标就能轻松获取数据,不管是导出excel还是自动发布到网站。详细参考图片一、二、三、四! 企业人员 通过爬取动态网页

    2024年02月12日
    浏览(43)
  • 数据隐私保护:网站文章采集txt事件引发的用户隐私安全风险

    近期,以“网站文章采集txt”为名义的企业因涉嫌非法收集用户数据而掀起一阵公众争议。该事件再度聚焦于数据隐私保护的议题。接下来,本文将深度剖析这一问题的实质。 1.采集行为遭到质疑 据悉,网站文章采集txt公司因涉嫌非法获取用户信息及进行商业利用而遭受指控

    2024年04月08日
    浏览(48)
  • 近万采集中华典故网站文章大全ACCESS\EXCEL数据库

    一个学语文的朋友问我有没有关于中华典故以及万物由来的数据,我看了看手头的资料发现还真没有,而且网上似乎也没有这一类的成品,因此就用程序采集了一个中华典故网的文章。 分类统计情况有:成语典故(共4198条)、典故杂闻(共702条)、国外典故(共29条)、科学

    2024年02月06日
    浏览(42)
  • 【阿里巴巴1688API接口开发系列】数据采集获取,封装接口可加高并发,大数据中心项目

    首先以1688商品数据为例 item_get-获得1688商品详情 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中)注册Key和secret接入 secret String 是 调用密钥 api_name String 是 API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] cache String 否 [yes,no]默认

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包