关键词搜索

源码搜索 ×
×

python带你采集汽车数据,以后买车就有参考了~

发布2022-06-23浏览552次

详情内容


本篇代码提供者: 青灯教育-巳月老师


本次亮点:

1、系统分析目标网页

2、html标签数据解析方法

3、海量数据一键保存

环境介绍:

  • python 3.8
  • pycharm 2021专业版 >>> 激活码
  • requests >>> pip install requests
  • parsel >>> pip install parsel

代码实现:

  1. 发送请求 (访问网站)
  2. 获取数据 网页源代码
  3. 解析数据 (网页构造, css样式选择器)
  4. 保存数据

代码

导入模块

import requests     # 发送请求 第三方模块(基于urllib开发模块) 额外安装 pip install 模块名
import parsel       # 解析数据模块 第三方模块 额外安装 pip install 模块名
import csv          # 内置模块 不需要你额外安装
  • 1
  • 2
  • 3

伪装

# 伪装 请求头 request headers
headers = {
    # 用户基本信息, 没有登陆信息
    'Cookie': 'fvlid=1644577630437PyNsv7r4UeWZ; che_sessionid=6033453E-99CD-4D18-9EC6-26D8D81CB82E%7C%7C2022-02-11+19%3A07%3A13.352%7C%7C0; sessionid=1510cb04-9fdd-428f-82f7-d7b77ccae016; area=430103; sessionip=175.0.63.33; sessionvisit=98f1634e-6cbb-4f5e-97f9-6af88e5b8d33; sessionvisitInfo=1510cb04-9fdd-428f-82f7-d7b77ccae016|www.autohome.com.cn|100533; Hm_lvt_d381ec2f88158113b9b76f14c497ed48=1650521306; che_sessionvid=6223C48B-0DCD-4485-8DB7-B9A2D39AC7FF; carDownPrice=1; listuserarea=0; UsedCarBrowseHistory=0%3A43390985%2C0%3A43390239%2C0%3A43268434%2C0%3A43010424; userarea=0; ahpvno=23; Hm_lpvt_d381ec2f88158113b9b76f14c497ed48=1650523580; ahuuid=46A0D5A6-5C39-4735-A5CE-3F6DA42672C9; showNum=52; v_no=36; visit_info_ad=6033453E-99CD-4D18-9EC6-26D8D81CB82E||6223C48B-0DCD-4485-8DB7-B9A2D39AC7FF||-1||-1||36; che_ref=www.autohome.com.cn%7C0%7C100533%7C0%7C2022-04-21+14%3A46%3A20.424%7C2022-02-11+19%3A55%3A59.495; sessionuid=1510cb04-9fdd-428f-82f7-d7b77ccae016',
    # 浏览器基本信息
    # 源码、解答、教程有需要可以口裙:832157862
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'
}
# z = 1, y = 2
url = 'https://www.che168.com/china/list/'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

发送请求

# 1. 发送请求 (访问网站)
# # 打印
# print(url)
# 发送请求 方式
response = requests.get(url=url, headers=headers)
  • 1
  • 2
  • 3
  • 4
  • 5

获取数据

# 2. 获取数据 网页源代码
html_data = response.text
  • 1
  • 2

解析数据

# 3. 解析数据 (网页构造, css样式选择器)
# 数据分析
# 网站开发   >>> 都有
# 人工智能
# html(存储数据) + css(样式) + js(可以实现动态的效果)
# <div class="viewlist_ul">
#       车辆信息
# </div>
# <div>
#     车主信息... 
# 源码、解答、教程有需要可以口裙:832157862
# </div>
# <img />
selector = parsel.Selector(html_data)
# python 数据容器 列表 [1,3,4,5,6]
# 我要用别名去取值
lis = selector.css('.viewlist_ul li')
for li in lis:
    card_name = li.css('.card-name::text').get()
    cards_unit = li.css('.cards-unit::text').get()
    price = li.css('.pirce em::text').get()
    img_url = 'https:'+li.css('.img-box img::attr(src)').get()
    if price == None or price == "":
        price = li.css('.pirce::text').get()
    print(card_name, cards_unit, price, img_url)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

保存数据

    # 4. 保存数据
    with open('汽车之家.csv', mode='a', encoding='utf-8', newline='') as f:
        csv_writer = csv.writer(f)
        csv_writer.writerow([card_name, cards_unit, price, img_url])
  • 1
  • 2
  • 3
  • 4

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载