【知识图谱学习笔记】B站课程-p8-p13 数据爬取和导入

这篇博客介绍了如何利用Selenium模拟浏览器爬取汽车之家网站的品牌、车系、车型及配置信息。作者通过分析数据异步加载的问题,选择了Selenium作为解决方案,并详细阐述了获取品牌、车系数据的步骤,强调了数据导入和处理的注意事项。
摘要由CSDN通过智能技术生成

B站地址:https://www.bilibili.com/video/av70702610
侵权请联系删除

这一块的难点在于数据的异步加载,以汽车之家的官网为例:
在这里插入图片描述
通过查看源代码会发现,汽车品牌后面的车型数目,例如阿斯顿的82是获取不到的,因为这一部分数据是异步加载的,所以采用传统的requests+beautifulsoup的静态解析技术路线已经不能解决问题。随之,有两种解决方案:
1、模拟浏览器。
2、HTTP请求分析,利用分析出来的路径进行异步数据加载。

相比较于第二种方案,模拟浏览器是比较容易上手的方法,具体可以采用request_html或者selenium的技术路线。两种方法都是可行的,本次实验采用selenium的技术路线,来模拟Chrome浏览器行为抓取数据。Selenium支持通过Xpath、CSS样式来进行标签数据的选择。

一、数据分析

首先对要爬取的数据做一个归纳,下层的数据通过上层传递的url来爬取,框起来的数据是导入数据时,构建关系的条件(相等)。

品牌Bank: 例如 阿斯顿·马丁
车系Series: 例如 阿斯顿·马丁DB11
车型Entity: 例如 阿斯顿·马丁DB11 2019款 AMR
配置Configuration: 例如 能耗、功率等信息

在这里插入图片描述
                     数据链分析

二、代码分析

2.1品牌信息获取

爬虫代码很简单,首先通过selenium的css选择器,给出品牌信息的css路径,然后逐步解析出品牌、车型总数、车系链接地址即可,代码和结果如下图。
在这里插入图片描述
在这里插入图片描述

2.2 车系数据获取

利用上面爬取的数据,把每个品牌对应的url抛给浏览器,通过下图的css路径可以爬取相应的车系数据、每个车系对应的车型数目和车型列表url。
在这里插入图片描述
在这里插入图片描述

2.3 车型信息获取

在这里插入图片描述
在这里插入图片描述

2.4 配置信息

拿到车系(type)表中的数字,附到https://car.autohome.com.cn/config/series/后面加.html。这一块的爬取是最困难的,这个困难不是技术上,而是细节处理:
1、数据量大
2、数据结构复杂
3、反扒机制,需要人工干涉(主要是修正参数名称)
4、普通汽车和新能源汽车scheme不一样(增加电动机参数)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外要注意释放缓存:driver.delete_all_cookies()

def Entity_Config():
    current_dir = os.path.abspath('.')
    print(current_dir)

    file_series = os.path.join(current_dir, "data\\type.csv"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值