你好呀~

爬取车质网分析爱车

想买车的朋友,可以把喜欢的车型可以在车质网查询一下,以确定车辆的问题是否超出心理预期。

为了快速分析看好的车辆,我们爬取了所有该车的投诉点,以长安univ为例做的爬取。

筛选后,得到上千条结果,这种手动翻翻翻肯定是很慢的,况且后面还要处理好几种车型,我对这个接口做爬取,快速获取所有数据。

def html(page, car_name: str):
    car_url = {
        '长安uni-v': f'http://www.12365auto.com/zlts/15-3290-0-0-0-0_0-0-0-0-0-0-0-{page}.shtml'
    }
    res = requests.get(car_url[car_name])
    time.sleep(1)
    text = res.text
    with open(car_name + str(page) + '.html', 'w', encoding='utf-8') as f:
        f.write(text)
    return text

获取完之后,这只是一个个的html静态页面。

需要把里面的表格数据提取出来,有很多库支持这种提取,比如beautifulsoup,但由于我好像讲过了它的使用,这次换成scrapy的selector。

提取也很大同小异的。

def car(text):
    big_li = []
    sel = Selector(text=text)
    for t_r in range(2, 11):
        a_li = []
        for t_d in [4, 5, 7]:
            # xpath = f'//*[@id="content"]/div[4]/div[2]/table/tbody/tr[{t_r}]/td[{t_d}]'
            xpath = f'//*[@id="content"]/div[4]/div[2]/table/tr[{t_r}]/td[{t_d}]/text()'
            if t_d == 5:
                xpath = f'//*[@id="content"]/div[4]/div[2]/table/tr[{t_r}]/td[{t_d}]/a/text()'
            tds = sel.xpath(xpath)
            con = tds.extract()
            if not con:
                break
            con = con[0]
            a_li.append(con)
        if a_li:
            big_li.append(a_li)
    return big_li

这样,就可以把各种投诉项放进列表里,以方便后续的分析。

使用pandas本地化数据。

    df = pd.DataFrame(data)
    df.to_csv(name + '.csv', encoding='GBK')

记录了车型、问题、和问题时间。全部落在excel表格里。

最后需要对关键词条进行提取,比如 是服务投诉,还是底盘盘有问题呀,还是车机问题呀,做好分类。这一步就是判断关键词是否在投诉的问题里。

univ的处理完了,可以再处理下一个爱车,也是类似的步骤。

罗列的车型还有艾瑞泽8、影豹、标志408、伊兰特、威朗、思域、领克03

多个车型对比下来之后,就有了一份总结,这里,我直接把这份总结给出来。

 

posted @ 2023-05-30 14:35  测神  阅读(104)  评论(0编辑  收藏  举报