在网络时代,信息获取变得越来越重要,而Python作为一门强大的编程语言,其爬虫技术可以帮助我们自动获取互联网上的各种信息。今天,我们将学习如何使用Python编写爬虫程序,自动获取汽车信息,并将这些信息保存到CSV文件中。
1. 引入必要的库
首先,我们需要引入一些必要的库,包括csv
用于CSV文件操作、os.path
用于文件路径操作、time
用于设置等待时间、requests
用于发送HTTP请求、lxml
用于HTML解析、urljoin
用于拼接URL、selenium
用于模拟浏览器操作。
import csv
import os.path
import time
import requests
from lxml import etree
from urllib.parse import urljoin
from selenium import webdriver
2. 定义获取主页面信息函数
接下来,我们定义一个函数get_main_page(url)
用于获取汽车网站的主页面信息。在这个函数中,我们首先设置了请求头headers
,然后发送HTTP请求并解析得到HTML树。
def get_main_page(url):
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
}
res = requests.get(url, headers=headers)
tree = etree.HTML(res.text)
3. 获取详情页URL并解析
在主页面信息获取后,我们需要获取详情页的URL,并传入解析函数parse_details_url(details_url)
进行解析。这里使用XPath选择器获取详情页URL,并通过urljoin
函数拼接完整URL。
details_url_list = tree.xpath('//ul[@class="viewlist_ul"]/li/a/@href')
for details_url in details_url_list:
details_url = urljoin(url, details_url)
4. 解析详情页信息
在parse_details_url(details_url)
函数中,我们使用Selenium模拟浏览器操作,打开详情页并获取相关信息,包括汽车名称、价格和基本信息。然后将这些信息写入CSV文件中。
def parse_details_url(details_url):
driver = webdriver.Chrome()
driver.get(details_url)
basic_list1 = tree.xpath('//div[@class="all-basic-content fn-clear"]/ul[1]/li/text()')
basic_list2 = tree.xpath('//div[@class="all-basic-content fn-clear"]/ul[3]/li/text()')
5. 主函数和循环调用
最后,在if __name__ == '__main__':
中,我们使用循环提取50页数据,构造URL并调用get_main_page(url)
函数获取数据,并将结果打印出来。
if __name__ == '__main__':
# 设置爬取的页数
for i in range(1, 101):
url = f'https://www.che168.com/hebei/a0_0msdgscncgpi1ltocsp{i}exx0/?pvareaid=102179#currengpostion'
get_main_page(url)
print(i)
数据展示
可视化部分
通过以上介绍,我们了解了如何使用Python编写爬虫程序,自动获取汽车信息并保存到CSV文件中。这个爬虫实战项目可以帮助我们更好地理解爬虫技术的应用和实现原理,对于进一步学习和探索爬虫技术有着积极的促进作用。希望这篇博客能够对您有所帮助!