您的位置:首页 > 娱乐 > 明星 > 源码网站下载_广州大型公司名单_国外十大免费服务器和域名_互联网广告平台有哪些

源码网站下载_广州大型公司名单_国外十大免费服务器和域名_互联网广告平台有哪些

2024/12/23 0:38:14 来源:https://blog.csdn.net/zhangchen124/article/details/144442938  浏览:    关键词:源码网站下载_广州大型公司名单_国外十大免费服务器和域名_互联网广告平台有哪些
源码网站下载_广州大型公司名单_国外十大免费服务器和域名_互联网广告平台有哪些

1.4创建爬虫代码

在这里插入图片描述

1.4.2 在目录spiderMan下创建spider.py文件,先创建目录结构

import requests
from lxml import etree
import csv
import os
import time
import json
import re
import django
import pandas as pd#代码编写
class spider(object):def __init__(self):passdef init(self):passdef main(self):pass#调用
if __name__ == '__main__':spiderObj = spider()   

1.5 完善代码,爬取数据

需要url网址,对网址进行分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
爬取数据的url网址:
https://www.dongchedi.com/motor/pc/car/rank_data?aid=1839&app_name=auto_web_pc&city_name=%E9%83%91%E5%B7%9E&count=10&offset=0&month=&new_energy_type=&rank_data_type=11&brand_id=&price=&manufacturer=%E8%87%AA%E4%B8%BB&series_type=&nation=0
获取数据的页面:
在这里插入图片描述

1.5.1 csv文件的创建

def init(self):if not os.path.exists('./temp.csv'):with open('./temp.csv', 'a', newline='', encoding='utf-8') as wf:write = csv.writer(wf)write.writerow(["brand", "carName", "carImg", "saleVolume", "price", "manufacturer", "rank", "carModel","energyType", "marketTime", "insure"])
#调用
if __name__ == '__main__':spiderObj = spider()# spiderObj.init()

在spiderMan下生成temp.csv文件,并查看其文件结构和内容。

在这里插入图片描述

1.5.2 数据文件的爬取
效果可以获取汽车列表的信息

class spider(object):def __init__(self):self.spiderUrl=('https://www.dongchedi.com/motor/pc/car/rank_data?aid=1839&app_name=auto_web_pc&city_name=%E9%83%91%E5%B7%9E&count=10&offset=10&month=&new_energy_type=&rank_data_type=11&brand_id=&price=&manufacturer=&series_type=&nation=0')self.headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'}#代码未更改def init(self):if not os.path.exists('./temp.csv'):with open('./temp.csv', 'a', newline='', encoding='utf-8') as wf:write = csv.writer(wf)write.writerow(["brand", "carName", "carImg", "saleVolume", "price", "manufacturer", "rank", "carModel","energyType", "marketTime", "insure"])def main(self):pageJson=requests.get(self.spiderUrl, headers=self.headers).json()pageJson=pageJson["data"]["list"]print(pageJson)#调用
if __name__ == '__main__':spiderObj = spider()# spiderObj.init()spiderObj.main()

1.5.3 读取单个汽车信息
在主类里面增加两个函数,代码如下

#定义两个函数,设置页和读取页
def set_page(self,newPage):with open('./spiderPage.txt','a',encoding='utf-8') as a_f:a_f.write('\n'+str(newPage))
def get_page(self):with open('./spiderPage.txt','r',encoding='utf-8') as r_f:return r_f.readlines()[-1].strip()def main(self):#定义变量countcount=self.get_page()params={'offset':int(count)}print("数据从{}开始爬取".format(int(count)+1))#pageJson=requests.get(self.spiderUrl, headers=self.headers).json()pageJson=requests.get(self.spiderUrl, headers=self.headers,params=params).json()pageJson=pageJson["data"]["list"]print(pageJson)#测试设置数据值#self.set_page(int(count)+10)

在spiderMan下添加文件spiderPage.txt,且设置值为0
执行上述代码,会发现有第一条数据
在这里插入图片描述
在这里插入图片描述
上面的代码
#测试设置数据值
#self.set_page(int(count)+10)
用于像spiderPage.txt添加数据值。0+10=10

增加一个对于循环遍历的测试:

#循环遍历
for index,car in enumerate(pageJson):print('正在爬取第%d'%(index+1)+'数据')print(car['brand_name'])break#测试设置数据值
#self.set_page(int(count)+10)

1.5.4 打印相关数据

#循环遍历,代码演示中,只写了打印!其他没有写!
for index,car in enumerate(pageJson):carData = []print('正在爬取第%d'%(index+1)+'数据')#品牌名 print(car['brand_name'])carData.append(car['brand_name'])#车名  print(car['series_name'])carData.append(car['series_name'])#打印图片链接print(car['image'])carData.append(car['image'])#销量carData.append(car['count'])#价格,需要拼接最低价格和最高价格;price=[]price.append(car['min_price'])price.append(car['max_price'])carData.append(price)

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com