嗨喽~大家好呀,这里是魔王呐 ❤ ~!
python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
环境使用:
-
Python 3.10
-
Pycharm
模块使用:
-
requests >>> pip install requests
-
csv
数据可视化:
-
pandas >>> pip install pandas
-
pyecharts >>> pip install pyecharts
爬虫实现基本流程
你要获取什么数据 -> 你要获取的数据在哪?
一. 数据来源分析
-
明确需求
明确采集的网站以及数据内容
网址: https://changsha.yiche.taocheche.com/buycar/pges9bxcdzaoqtrnml/
数据: 车辆信息: 车型 价格 公里数 城市…
-
抓包分析
通过浏览器开发者工具进行分析, 我们想要的数据内容可以请求那个网站能够得到
-
打开开发者工具
F12 / 右键点击检查选择network (网络)
-
刷新网页
让网页的数据内容重新加载一遍 (才能在开发者中看到对应数据包)
-
通过关键字搜索找到对应数据包位置
-
数据包地址: https://proconsumer.taocheche.com/c-car-consumer/carsource/getUcarLo
calList
-
二. 代码实现步骤
导入模块
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:926207505
'''
# 导入数据请求模块
import requests
# 导入格式化输出模块
from pprint import pprint
# 导入csv模块
import csv
-
保存数据
保存表格文件: csv / Excel
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'标题',
'品牌',
'车型',
'年份',
'里程',
'城市',
'售价',
'首付',
])
csv_writer.writeheader()
-
发送请求
模拟浏览器对于url地址发送请求
-
模拟浏览器: 一种简单反反爬手段 (字典)
可以直接在开发者工具中复制 -> 点击数据包 -> 标头(headers) -> 请求标头(request
headers) -> User-Agent (UA) -
请求网址
-
发送请求
请求方法: GET / POST
GET: 是向服务器获取数据
POST: 是需要向服务器提交表单参数
-
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:926207505
'''
# 模拟浏览器
headers = {
# User-Agent 用户代理, 表示浏览器基本身份信息
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}
# 请求网址
url = 'https://proconsumer.taocheche.com/c-car-consumer/carsource/getUcarLocalList'
for page in range(1, 101):
print(f'============正在采集第{
page}页的数据内容============')
# 请求参数
data = {
"liveSwitch":1,"terminal":40,"aggreCarSeries":0,"aggreCarbrands":0,"bangMai":"false","bangMaiChe":"false","baseScore":0,"bigArea":0,"brandId":0,"brandPro":0,"canNonLocal":2,"carAgeId":0,"carBasicId":0,"carLevel":0,"carType":0,"cityId":1301,"color":0,"commonFlag":4,"country":0,"curCity":0,"customizeSortFlag":