python获取二手车数据,看看价格,争做第n+买车之人~

嗨害大家好鸭!我是小熊猫~

现在我们出行都离不开车,班车、地铁、打车等等操作

当然啦,自己拥有一辆车再好不过了

跟女方结婚,你有车车;上下班,你有车;

出去旅个游,你有车,自驾游来一波,哈哈哈哈

车现在买不起,还不能让我看看,知道知道行情

之后直接一举拿下,不带一点犹豫滴~

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

第三方模块 需要安装的

  • requests >>> pip install requests

  • parsel >>> pip install parsel

  • csv

第三方模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

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

代码展示

# 导入数据请求模块
import requests
# 导入数据解析模块
import parsel
# 导入csv
import csv
"""
1. 创建文件对象 f
"""
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '品牌',
    '信息',
    '年份',
    '里程',
    '城市',
    '售价',
    '标签',
    '详情页',
])
csv_writer.writeheader()

# 模拟浏览器
headers = {
    
    
    # User-Agent 用户代理, 表示浏览器基本身份信息
    源码、解答、资料加V:qian97378免费领
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
for page in range(1, 51):
    # 请求链接
    url = f'*****/all/?page={
      
      page}'
    # 发送请求 <Response [200]> 响应对象 状态码200 表示请求成功
    response = requests.get(url=url, headers=headers)
    # 把获取到网页源代码 response.text, 转成可解析对象
    selector = parsel.Selector(response.text)  # <Selector xpath=None data='<html lang="en">\n<head>\n    <meta cha...'>
    # 第一次提取, 获取所有车辆信息所在li标签 获取多个基本返回列表
    lis = selector.css('.Content_left .gongge_ul li')
    # for循环遍历
    for li in lis:
        # 标题
        title = li.css('.title::attr(title)').get()
        info = li.css('.gongge_main p i::text').getall()
        price = li.css('.gongge_main .price .Total::text').get()
        tag = li.css('.qgg_tag::text').get().strip()
        href = li.css('.title::attr(href)').get()
        dit = {
    
    
            '品牌': title.split(' ')[0],
            '信息': ' '.join(title.split(' ')[2:]),
            '年份': info[0].replace('年', ''),
            '里程': info[1].replace('万公里', ''),
            '城市': info[2].strip(),
            '售价': price,
            '标签': tag,
            '详情页': href,
        }
        csv_writer.writerow(dit)
        print(dit)

解析方法: 选择那种解析方法, 根据返回数据来

  1. re正则表达式 -> 对于字符串数据直接解析

  2. css选择器 -> 根据标签属性提取数据

  3. xpath节点提取 -> 根据标签节点提取数据

我是小熊猫,咱下篇文章再见噜(✿◡‿◡)

猜你喜欢

转载自blog.csdn.net/m0_67575344/article/details/131600228