先划重点:这篇你能学到啥?
看着别人一个个成功抓取数据,是不是有点心痒?别急,今天就来带你手把手走通Python爬虫的全流程。我们直接实战,目标就是拿下某汽车网站的二手车信息。零基础友好,跟着走完,你不仅能把“车型、信息、价格”这些关键数据一网打尽,还能让它们规规矩矩地躺进Excel或CSV表格里,随用随取。

步骤 1:导入必备爬虫库
工欲善其事,必先利其器。动手之前,咱们得先把几个核心“工具”准备好。下面这三个库,堪称爬虫界的经典组合,一个都少不了:
import requests # 用来请求网页
from lxml import etree # 解析网页结构
import pandas as pd # 存数据用
步骤 2:准备网址 + 反爬 “伪装”
爬取数据,首先得告诉程序目标在哪里。这里我们以某汽车网站的温州二手车页面为例。但直接敲门可不行,现在的网站都有“门卫”(反爬机制),咱们得稍微伪装一下,加个“User-Agent”请求头,假装自己是普通的浏览器访问,这样才能顺利进门。
url = 'https://www.che168.com/wenzhou' # 温州二手车页面
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'
}
步骤 3:获取网页源代码
地址和“伪装”都搞定了,下一步就是动手抓取。用requests.get这个方法,配合我们准备好的网址和请求头,就能把网页最原始的HTML代码“拿”下来。打印出来看看,你会发现,网页上呈现的那些图文数据,其实都藏在这些结构化的代码里。
resp = requests.get(url, headers=header)
print(resp.text) # 输出网页源代码
步骤 4:解析网页结构
拿到源代码只是第一步,关键是怎么从中精准地“抠”出我们需要的信息。这时候,lxml库和XPath语法就该上场了。你可以把XPath理解为地图坐标,它能帮我们在复杂的网页结构中,快速定位到具体数据所在的位置。
html = etree.HTML(resp.text) # 把代码转成可解析的格式
# 定位到存放二手车信息的区域
divs = html.xpath('//*[@id="goodStartSolrQuotePriceCore0"]/ul/li')
# 准备3个空列表存数据
car_type1 = [] # 车型
car_message1 = [] # 车辆信息
car_price1 = [] # 价格
步骤 5:提取数据到列表
定位到数据所在的“集装箱”后,接下来就是开箱取货。通过一个循环,我们遍历每一个“集装箱”,把里面的“车型”、“信息”、“价格”这三样宝贝分别提取出来,放到对应的列表里。最后,用pandas这个强大的数据处理工具,将三个列表整理成一个清晰规整的表格。
for div in divs:
# 提取车型
car_type = div.xpath('./a/div[3]/h2/text()')
if car_type:
car_type1.append(car_type[0])
# 提取车辆信息
car_message = div.xpath('./a/div[3]/p/text()')
if car_message:
car_message1.append(car_message[0])
# 提取价格(把多个文本拼接成字符串)
car_price = ''.join(div.xpath('./a/div[3]/div/span//text()'))
if car_price:
car_price1.append(car_price)
# 转成DataFrame表格
dic = {'车型': car_type1, '信息': car_message1, '车价': car_price1}
data = pd.DataFrame(dic)
步骤 6:数据存成 Excel/CSV
所有数据都已整理到位,最后一步就简单得令人愉悦了。Pandas提供了极其便捷的方法,只需一行代码,就能将整个表格存为你想要的格式。无论是用Excel直接分析,还是导入其他系统,都畅通无阻。
data.to_excel('温州二手车信息.xlsx') # 存为Excel
data.to_csv('温州二手车信息.csv') # 存为CSV
注意事项
需要特别提醒两点:第一,代码里的XPath路径是针对示例网页结构写的,如果你要爬取其他网站或不同版块,需要根据实际情况重新定位,这一点是关键。第二,网络爬虫要遵守基本规范,动手前最好看一下目标网站的robots.txt协议,并且务必避免短时间内的频繁请求,做个“友好”的爬虫者。
以上就是一个完整的Python爬虫数据抓取流程。可以说,这个框架本身就是一个通用模板。掌握之后,你完全可以举一反三,调整网址和解析规则,去抓取你感兴趣的任意公开网页数据。
