Python爬虫:汽车之家爬虫(完整代码)

这篇具有很好参考价值的文章主要介绍了Python爬虫:汽车之家爬虫(完整代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️
🐴作者:秋无之地

🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。

🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、留言💬、关注🤝,关注必回关

一、确定目标数据

1、先打开目标网站,找到目标数据所在的页面

汽车之家爬虫,爬虫,python,爬虫,汽车

2、找到目标数据所在的api或页面

通过f12打开调试模式,通过搜索关键词,找到关键词所在的api或页面

汽车之家爬虫,爬虫,python,爬虫,汽车

汽车之家爬虫,爬虫,python,爬虫,汽车

3、观察请求参数

1)header参数:没有加密数据,无需登录因此不用cookie

汽车之家爬虫,爬虫,python,爬虫,汽车

2)翻页:url参数变动了,0-1表示第一页,0-3表示第三页。

汽车之家爬虫,爬虫,python,爬虫,汽车

二、请求接口

使用requests库请求接口,返回数据

    def get_data(self,page=1):
        '''请求接口'''
        url = f"https://car.autohome.com.cn/price/list-15_20-0-0-0-0-0-0-0-0-0-0-0-0-0-0-{page}.html"
        res = requests.get(url=url, headers=self.header).text
        # print(res)
        #返回数据
        if '用户评分' in res:
            return res
        else:
            return ""

三、数据解析

将返回的数据进行正则匹配,然后通过遍历提取目标数据

 def data_deal(self,data_text=None):
        '''数据解析'''
        new_list = []
        #详情链接+车名
        url_name_li = re.findall(r'<a href="/price/series-(\d+).html#pvareaid=(\d+)" target="_self" class="font-bold">(.*?)</a>',data_text)
        #用户评分
        score_number_li = re.findall(r'<span class="score-number">(.*?)</span>',data_text)
        #级别
        info_gray_li = re.findall(r'别:<span class="info-gray">(.*?)</span>',data_text)
        #官方指导价
        price_li = re.findall(r'指导价:<span class="lever-price red"><span class="font-arial">(.*?)</span>',data_text)
        for i in range(len(url_name_li)):
            url_id1,url_id2,car_name = url_name_li[i]
            # 详情链接
            info_url = f'https://car.autohome.com.cn/price/series-{url_id1}.html#pvareaid={url_id2}'
            # 用户评分
            score_number = score_number_li[i]
            # 级别
            info_gray = info_gray_li[i]
            # 官方指导价
            price = price_li[i]
            new_list.append([car_name,info_url,score_number,info_gray,price])
        return new_list

四、数据存储

数据解析后,对数据进行拼接,然后持久化,存在csv文件

    def data_to_csv(self,data_li=None):
        '''数据存储'''
        df = pd.DataFrame(data_li)
        df.to_csv("test2.csv", index=False)

文件内容:

汽车之家爬虫,爬虫,python,爬虫,汽车

五、完整代码

完整代码如下:

# -*- coding: utf-8 -*-
import math
import re

import requests
import pandas as pd


class Car_home_class():
    '''汽车之家'''

    def __init__(self):
        self.header = {
            "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
            "Referer":"https://car.autohome.com.cn/price/list-15_20-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1.html",
        }

    def get_data(self,page=1):
        '''请求接口'''
        url = f"https://car.autohome.com.cn/price/list-15_20-0-0-0-0-0-0-0-0-0-0-0-0-0-0-{page}.html"
        res = requests.get(url=url, headers=self.header).text
        # print(res)
        #返回数据
        if '用户评分' in res:
            return res
        else:
            return ""

    def data_deal(self,data_text=None):
        '''数据解析'''
        new_list = []
        #详情链接+车名
        url_name_li = re.findall(r'<a href="/price/series-(\d+).html#pvareaid=(\d+)" target="_self" class="font-bold">(.*?)</a>',data_text)
        #用户评分
        score_number_li = re.findall(r'<span class="score-number">(.*?)</span>',data_text)
        #级别
        info_gray_li = re.findall(r'别:<span class="info-gray">(.*?)</span>',data_text)
        #官方指导价
        price_li = re.findall(r'指导价:<span class="lever-price red"><span class="font-arial">(.*?)</span>',data_text)
        for i in range(len(url_name_li)):
            url_id1,url_id2,car_name = url_name_li[i]
            # 详情链接
            info_url = f'https://car.autohome.com.cn/price/series-{url_id1}.html#pvareaid={url_id2}'
            # 用户评分
            score_number = score_number_li[i]
            # 级别
            info_gray = info_gray_li[i]
            # 官方指导价
            price = price_li[i]
            new_list.append([car_name,info_url,score_number,info_gray,price])
        return new_list

    def data_to_csv(self,data_li=None):
        '''数据存储'''
        df = pd.DataFrame(data_li)
        df.to_csv("test2.csv", index=False)


    def run(self):
        # 翻页获取数据
        all_list = []
        all_list.append(["车名", "详情链接", "用户评分", "级别", "官方指导价"])
        #爬取10页
        for page in range(1,2):
            print("当前页数:",page)
            data_text = self.get_data(page=page)
            out_date = self.data_deal(data_text=data_text)
            print("*"*100)
            print(out_date)
            all_list += out_date
            self.data_to_csv(data_li=all_list)


if __name__ == '__main__':
    ddc = Car_home_class()
    ddc.run()

六、总结

Python爬虫主要分三步:

  1. 请求接口
  2. 数据解析
  3. 数据存储

版权声明

本文章版权归作者所有,未经作者允许禁止任何转载、采集,作者保留一切追究的权利。文章来源地址https://www.toymoban.com/news/detail-760481.html

到了这里,关于Python爬虫:汽车之家爬虫(完整代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28

    链接:https://pan.baidu.com/s/18oE308_NVNPaCOACw_H5Hw?pwd=abc1  利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28 这是网上的数据,怎么将它爬取下来 它将只爬取最近30期的双色球开奖号码,并将结果写入到名为 \\\"双色球开奖结果.csv\\\" 的文件中。   生成

    2024年02月15日
    浏览(171)
  • Python爬虫-新能源汽车对应的“年份月份”销量榜

    前言 本文是该专栏的第15篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏前面,笔者有单独详细介绍采集新能源汽车销量榜,感兴趣的同学,可以往前翻阅查看《Python爬虫-新能源汽车销量榜》。而之后,也有很多同学单独私信,那如果要单独采集 某个年份 ,

    2024年02月03日
    浏览(52)
  • 汽车之家Unity前端通用架构升级实践

    背景介绍 随着之家3D虚拟化需求的增加,各产品线使用Unity引擎的项目也越来越多,新老项目共存,代码维护成本也随之增加。代码质量参差加之代码规范仍没有完全统一产生高昂学习成本进一步加重了项目维护负担。 为应对这些问题,我们决定借助主机厂数科产品线销冠神

    2024年02月03日
    浏览(40)
  • 汽车之家10年系统架构演进与平台化架构实践

    目录: 一、前言 二、架构演进 1、起步阶段 2、微服务阶段 3、主数据阶段 4、平台化架构阶段 三、平台化架构实践 1、业务身份化 2、服务编排化 3、业务配置化 4、开发工具化 5、数据可视化 6、知识沉淀 四、尾声 1、探索新零售 2、架构升级   一、前言   汽车之家电商系统

    2024年02月06日
    浏览(56)
  • 汽车之家主机厂离线化 H5 Hybrid 实践

    1.背景 H5 页面做秒开优化是业务的常规操作,一般正常通过网络请求的 H5 页面,我们都是围绕资源加载速度优化展开。优化手段主要分两个方向,一个是提升网络速度,一个是减少资源大小。 提升网络速度,一般的手段有 DNS 预解析、多域名、升级 HTTP2、使用 CDN、SSR。而即

    2024年02月08日
    浏览(45)
  • Python:使用爬虫抓取网页中的视频并下载(完整源码)

    Python:使用爬虫抓取网页中的视频并下载(完整源码) 在今天的程序开发世界中,网站是不可或缺的一部分。人们使用网站来获取有用的信息、购买商品和娱乐自己。这些网站的内容通常包含了各种类型的文件,其中最常见的就是视频。对于有经验的程序开发者来说,使用

    2024年02月16日
    浏览(74)
  • Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)

    本次爬取的目标是某网站4K高清小姐姐图片: 实现批量下载指定的图片,存放到指定文件夹中: Python:3.10 编辑器:PyCharm 第三方模块,自行安装: 爬虫使用代理IP的好处有以下几点: 轮换IP地址 :使用代理IP可以轮换IP地址,降低被封禁的风险,从而保持爬取的连续性

    2024年02月07日
    浏览(109)
  • 汽车减震器弹簧阻尼模型及python代码

    U为主动减震施加的力。   通过python control库,可以得到在单位脉冲激励下X1的响应曲线  

    2024年02月15日
    浏览(40)
  • 【项目实训】汽车租贷系统(完整代码)

    本实验旨在设计和实现一个汽车租赁系统,供客户使用。该系统能够根据客户的选择自动计算租金、租车日期、注意事项以及优惠金额等内容,并提供相应的服务和提示。 2.1 类的设计与实现 在设计与实现过程中,我们使用了面向对象的方法,并按照以下步骤进行: ①实现类

    2024年02月06日
    浏览(50)
  • 【Python爬虫实战】汽车城最好的十款车,第一名竟是这款车...Python教你一键采集二手车数据信息实现数据可视化展示哦~(附视频教程)

    驾考不易,天天早起去练车,无论烈日还是下雨,通通都在室外进行,但想要拿证,一定要坚 持不懈的去练车。 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 小编就是在一复一日的练习中,终于得到了我人生中以为不可能考证之驾照到手了! 这不?驾照到

    2024年02月02日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包