首页 > 其他分享 >爬取汽车之家:基于selenium和request自动获取汽车信息并保存到CSV文件matplotlib和seaborn可视化分析

爬取汽车之家:基于selenium和request自动获取汽车信息并保存到CSV文件matplotlib和seaborn可视化分析

时间:2024-03-17 20:30:42浏览次数:19  
标签:__ seaborn url selenium 获取 details import main 汽车信息

在网络时代,信息获取变得越来越重要,而Python作为一门强大的编程语言,其爬虫技术可以帮助我们自动获取互联网上的各种信息。今天,我们将学习如何使用Python编写爬虫程序,自动获取汽车信息,并将这些信息保存到CSV文件中。

1. 引入必要的库

首先,我们需要引入一些必要的库,包括csv用于CSV文件操作、os.path用于文件路径操作、time用于设置等待时间、requests用于发送HTTP请求、lxml用于HTML解析、urljoin用于拼接URL、selenium用于模拟浏览器操作。

import csv
import os.path
import time

import requests
from lxml import etree
from urllib.parse import urljoin
from selenium import webdriver

2. 定义获取主页面信息函数

接下来,我们定义一个函数get_main_page(url)用于获取汽车网站的主页面信息。在这个函数中,我们首先设置了请求头headers,然后发送HTTP请求并解析得到HTML树。

def get_main_page(url):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
    }
    res = requests.get(url, headers=headers)
    tree = etree.HTML(res.text)

3. 获取详情页URL并解析

在主页面信息获取后,我们需要获取详情页的URL,并传入解析函数parse_details_url(details_url)进行解析。这里使用XPath选择器获取详情页URL,并通过urljoin函数拼接完整URL。

details_url_list = tree.xpath('//ul[@class="viewlist_ul"]/li/a/@href')
for details_url in details_url_list:
    details_url = urljoin(url, details_url)

4. 解析详情页信息

parse_details_url(details_url)函数中,我们使用Selenium模拟浏览器操作,打开详情页并获取相关信息,包括汽车名称、价格和基本信息。然后将这些信息写入CSV文件中。

def parse_details_url(details_url):
    driver = webdriver.Chrome()
    driver.get(details_url)
    basic_list1 = tree.xpath('//div[@class="all-basic-content fn-clear"]/ul[1]/li/text()')
    basic_list2 = tree.xpath('//div[@class="all-basic-content fn-clear"]/ul[3]/li/text()')
    

5. 主函数和循环调用

最后,在if __name__ == '__main__':中,我们使用循环提取50页数据,构造URL并调用get_main_page(url)函数获取数据,并将结果打印出来。

if __name__ == '__main__':
#   设置爬取的页数
    for i in range(1, 101):
        url = f'https://www.che168.com/hebei/a0_0msdgscncgpi1ltocsp{i}exx0/?pvareaid=102179#currengpostion'
        get_main_page(url)
        print(i)

数据展示

在这里插入图片描述

可视化部分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过以上介绍,我们了解了如何使用Python编写爬虫程序,自动获取汽车信息并保存到CSV文件中。这个爬虫实战项目可以帮助我们更好地理解爬虫技术的应用和实现原理,对于进一步学习和探索爬虫技术有着积极的促进作用。希望这篇博客能够对您有所帮助!

源码下载

在这里插入图片描述

标签:__,seaborn,url,selenium,获取,details,import,main,汽车信息
From: https://blog.csdn.net/yaokk1/article/details/136788969

相关文章

  • macos selenium msedgedriver 浏览器驱动 爬虫
    MacOSSelenium跨浏览器环境搭建在macOS上使用Selenium启动新版Edge的方式如下。macOS版本:10.15.5Edge版本:83.0.478.58下载83版本对应的新版Edge驱动:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads解压并移动到/usr/loca......
  • 一定要会用selenium的等待,3种等待方式解读
    很多人问,这个下拉框定位不到、那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:有frame没有加等待殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出......
  • python selenium Demo
    importtimefromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptionsfromselenium.webdriver.common.byimportBy#自动下载驱动fromwebdriver_helperimportget_webdriver#创建一个参数对象,用来控制chrome以无界面模式打开(可以视为固......
  • Python Seaborn库中的figure与grid
    在使用Seaborn(通常与Matplotlib库一起使用)进行绘图时,plt.figure()和plt.grid()的先后顺序确实会影响最终的出图效果。这里的plt通常是指Matplotlib的pyplot模块,它是Matplotlib的绘图框架,而Seaborn是建立在Matplotlib之上的高级绘图库,用于更复杂的数据可视化。plt......
  • 【python】自动化工具Selenium与playwright去除webdriver检测
    对这个世界如果你有太多的抱怨跌倒了就不敢继续往前走为什么人要这么的脆弱堕落请你打开电视看看多少人为生命在努力勇敢的走下去我们是不是该知足珍惜一切就算没有拥有                     ......
  • pytest+selenium+allure web端UI自动化框架设计
    一、框架目录actions:封装业务操作链,是一个包pages:封装各模块页面操作方法,是一个包testcase:封装具体业务测试用例,是一个包common:底层代码封装,比如:核心操作,文件处理,日志等,是一个包doc:程序指南文件目录pagefiles:页面元素定位信息,是一个目录config:管理配置文件,是一个目录dat......
  • Airtest-Selenium升级兼容Selenium 4.0,给你全新体验!
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言在上期更新推文中提到,我们Airtest-Selenium更新到了1.0.6版本,新增支持Selenium4.0的语法,那么我们来看一下Airtest-Selenium更新后有什么新的内容吧~二、......
  • 【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)
    1.前言本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!!2.如何使用AirtestIDE驱动Firefox浏览器对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天......
  • 《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外
    1.简介上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是相对前边做一个简单的总结分享给小伙伴们或者童鞋们。废话不多数,直接进入......
  • 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
    1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。2.select下拉框2.1Select类1.在Selenium中,针对html的标签select多选下拉列表有几种方法:selectByIndex(index);......