用scrapy爬取淘车网站,选取宝车

news/2024/5/14 18:40:47/文章来源:https://blog.csdn.net/qq_47687506/article/details/117508387

哈喽你们好啊
最近有这样一个作业,本来想偷懒,在csdn上找一个代码,复制粘贴完成就🆗了,结果搜寻全站,竟然无此内容,这就很无奈了在这里插入图片描述
既然如此 ,那我就自己动手,丰衣足食了 。
在这里插入图片描述
好了,回归正题,今天我分享是用scrapy爬取淘车(https://www.taoche.com/),接下来我们一起看看应如何爬取呢??
在这里插入图片描述

scrapy 是什么呢 ?我简单的介绍一下吧
Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~

首先是创建项目
在这里插入图片描述
在py里命令框输入文件就会创建好的。
在这里插入图片描述
这些就是各py文件具体作用了。
在这里插入图片描述
步入正题
我们先创建项目
在这里插入图片描述
然后切入spiders这个文件夹创建爬虫文件
输入命令 scrapy genspider Tc
在这里插入图片描述
接下来我们看淘车网站,我需要爬取他每一个城市的车辆有的和出售价格品牌
第一步,我先获取全国城市,要进行拼接url

 city = ['quanguo', 'shijiazhuang', 'tangshan', 'qinhuangdao', 'handan', 'xingtai', 'baoding', 'zhangjiakou','chengde', 'cangzhou', 'langfang', 'hengshui', 'taiyuan', 'datong', 'yangquan', 'changzhi', 'jincheng','shuozhou', 'jinzhong', 'yuncheng', 'xinzhou', 'linfen', 'lvliang', 'huhehaote', 'baotou', 'wuhai','chifeng', 'tongliao', 'eerduosi', 'hulunbeier', 'bayannaoer', 'wulanchabu', 'xinganmeng','xilinguolemeng', 'alashanmeng', 'changchun', 'jilin', 'hangzhou', 'ningbo', 'wenzhou', 'jiaxing','huzhou', 'shaoxing', 'jinhua', 'quzhou', 'zhoushan', 'tz', 'lishui', 'bozhou', 'chizhou', 'xuancheng','nanchang', 'jingdezhen', 'pingxiang', 'jiujiang', 'xinyu', 'yingtan', 'ganzhou', 'jian', 'yichun','jxfz','shangrao', 'xian', 'tongchuan', 'baoji', 'xianyang', 'weinan', 'yanan', 'hanzhong', 'yl', 'ankang','shangluo', 'lanzhou', 'jiayuguan', 'jinchang', 'baiyin', 'tianshui', 'wuwei', 'zhangye', 'pingliang','jiuquan', 'qingyang', 'dingxi', 'longnan', 'linxia', 'gannan', 'xining', 'haidongdiqu', 'haibei','huangnan', 'hainanzangzuzizhizho', 'guoluo', 'yushu', 'haixi', 'yinchuan', 'shizuishan', 'wuzhong','guyuan', 'zhongwei', 'wulumuqi', 'kelamayi', 'shihezi', 'tulufandiqu', 'hamidiqu', 'changji','boertala','bazhou', 'akesudiqu', 'xinjiangkezhou', 'kashidiqu', 'hetiandiqu', 'yili', 'tachengdiqu','aletaidiqu','xinjiangzhixiaxian', 'changsha', 'zhuzhou', 'xiangtan', 'hengyang', 'shaoyang', 'yueyang', 'changde','zhangjiajie', 'yiyang', 'chenzhou', 'yongzhou', 'huaihua', 'loudi', 'xiangxi', 'guangzhou','shaoguan','shenzhen', 'zhuhai', 'shantou', 'foshan', 'jiangmen', 'zhanjiang', 'maoming', 'zhaoqing', 'huizhou','meizhou', 'shanwei', 'heyuan', 'yangjiang', 'qingyuan', 'dongguan', 'zhongshan', 'chaozhou','jieyang','yunfu', 'nanning', 'liuzhou', 'guilin', 'wuzhou', 'beihai', 'fangchenggang', 'qinzhou', 'guigang','yulin', 'baise', 'hezhou', 'hechi', 'laibin', 'chongzuo', 'haikou', 'sanya', 'sanshashi','qiongbeidiqu','qiongnandiqu', 'hainanzhixiaxian', 'chengdu', 'zigong', 'panzhihua', 'luzhou', 'deyang', 'mianyang','guangyuan', 'suining', 'neijiang', 'leshan', 'nanchong', 'meishan', 'yibin', 'guangan', 'dazhou','yaan','bazhong', 'ziyang', 'aba', 'ganzi', 'liangshan', 'guiyang', 'liupanshui', 'zunyi', 'anshun','tongrendiqu', 'qianxinan', 'bijiediqu', 'qiandongnan', 'qiannan', 'kunming', 'qujing', 'yuxi','baoshan','zhaotong', 'lijiang', 'puer', 'lincang', 'chuxiong', 'honghe', 'wenshan', 'xishuangbanna', 'dali','dehong', 'nujiang', 'diqing', 'siping', 'liaoyuan', 'tonghua', 'baishan', 'songyuan', 'baicheng','yanbian', 'haerbin', 'qiqihaer', 'jixi', 'hegang', 'shuangyashan', 'daqing', 'yc', 'jiamusi','qitaihe','mudanjiang', 'heihe', 'suihua', 'daxinganlingdiqu', 'shanghai', 'tianjin', 'chongqing', 'nanjing','wuxi','xuzhou', 'changzhou', 'suzhou', 'nantong', 'lianyungang', 'huaian', 'yancheng', 'yangzhou','zhenjiang','taizhou', 'suqian', 'lasa', 'changdudiqu', 'shannan', 'rikazediqu', 'naqudiqu', 'alidiqu','linzhidiqu','hefei', 'wuhu', 'bengbu', 'huainan', 'maanshan', 'huaibei', 'tongling', 'anqing', 'huangshan','chuzhou','fuyang', 'sz', 'chaohu', 'luan', 'fuzhou', 'xiamen', 'putian', 'sanming', 'quanzhou', 'zhangzhou','nanping', 'longyan', 'ningde', 'jinan', 'qingdao', 'zibo', 'zaozhuang', 'dongying', 'yantai','weifang','jining', 'taian', 'weihai', 'rizhao', 'laiwu', 'linyi', 'dezhou', 'liaocheng', 'binzhou', 'heze','zhengzhou', 'kaifeng', 'luoyang', 'pingdingshan', 'jiyuan', 'anyang', 'hebi', 'xinxiang', 'jiaozuo','puyang', 'xuchang', 'luohe', 'sanmenxia', 'nanyang', 'shangqiu', 'xinyang', 'zhoukou', 'zhumadian','henanzhixiaxian', 'wuhan', 'huangshi', 'shiyan', 'yichang', 'xiangfan', 'ezhou', 'jingmen', 'xiaogan','jingzhou', 'huanggang', 'xianning', 'qianjiang', 'suizhou', 'xiantao', 'tianmen', 'enshi','hubeizhixiaxian', 'beijing', 'shenyang', 'dalian', 'anshan', 'fushun', 'benxi', 'dandong', 'jinzhou','yingkou', 'fuxin', 'liaoyang', 'panjin', 'tieling', 'chaoyang', 'huludao', 'anhui', 'fujian', 'gansu','guangdong', 'guangxi', 'guizhou', 'hainan', 'hebei', 'henan', 'heilongjiang', 'hubei', 'hunan', 'jl','jiangsu', 'jiangxi', 'liaoning', 'neimenggu', 'ningxia', 'qinghai', 'shandong', 'shanxi', 'shaanxi','sichuan', 'xizang', 'xinjiang', 'yunnan', 'zhejiang', 'jjj', 'jzh', 'zsj', 'csj', 'ygc']

车的品牌

 car_list = ['southeastautomobile', 'sma', 'audi', 'hummer', 'tianqimeiya', 'seat', 'lamborghini','weltmeister','changanqingxingche-281', 'chevrolet', 'fiat', 'foday', 'eurise', 'dongfengfengdu', 'lotus-146','jac','enranger', 'bjqc', 'luxgen', 'jinbei', 'sgautomotive', 'jonwayautomobile', 'beijingjeep','linktour','landrover', 'denza', 'jeep', 'rely', 'gacne', 'porsche', 'wey', 'shenbao', 'bisuqiche-263','beiqihuansu', 'sinogold', 'roewe', 'maybach', 'greatwall', 'chenggongqiche', 'zotyeauto','kaersen','gonow', 'dodge', 'siwei', 'ora', 'lifanmotors', 'cajc', 'hafeiautomobile', 'sol','beiqixinnengyuan','dorcen', 'lexus', 'mercedesbenz', 'ford', 'huataiautomobile', 'jmc', 'peugeot', 'kinglongmotor','oushang', 'dongfengxiaokang-205', 'chautotechnology', 'faw-hongqi', 'mclaren', 'dearcc','fengxingauto', 'singulato', 'nissan', 'saleen', 'ruichixinnengyuan', 'yulu', 'isuzu', 'zhinuo','alpina', 'renult', 'kawei', 'cadillac', 'hanteng', 'defu', 'subaru', 'huasong', 'casyc', 'geely','xpeng', 'jlkc', 'sj', 'nanqixinyatu1', 'horki', 'venucia', 'xinkaiauto', 'traum','shanghaihuizhong-45', 'zhidou', 'ww', 'riich', 'brillianceauto', 'galue', 'bugatti','guagnzhouyunbao', 'borgward', 'qzbd1', 'bj', 'changheauto', 'faw', 'saab', 'fuqiautomobile','skoda','citroen', 'mitsubishi', 'opel', 'qorosauto', 'zxauto', 'infiniti', 'mazda', 'arcfox-289','jinchengautomobile', 'kia', 'mini', 'tesla', 'gmc-109', 'chery', 'daoda-282', 'joylongautomobile','hafu-196', 'sgmw', 'wiesmann', 'acura', 'yunqueqiche', 'volvo', 'lynkco', 'karry', 'chtc', 'gq','redstar', 'everus', 'kangdi', 'chrysler', 'cf', 'maxus', 'smart', 'maserati', 'dayu', 'besturn','dadiqiche', 'ym', 'huakai', 'buick', 'faradayfuture', 'leapmotor', 'koenigsegg', 'bentley','rolls-royce', 'iveco', 'dongfeng-27', 'haige1', 'ds', 'landwind', 'volkswagen', 'sitech','toyota','polarsunautomobile', 'zhejiangkaersen', 'ladaa', 'lincoln', 'weilaiqiche', 'li', 'ferrari','jetour','honda', 'barbus', 'morgancars', 'ol', 'sceo', 'hama', 'dongfengfengguang', 'mg-79', 'ktm','changankuayue-283', 'suzuki', 'yudo', 'yusheng-258', 'fs', 'bydauto', 'jauger', 'foton', 'pagani','shangqisaibao', 'guangqihinomotors', 'polestar', 'fujianxinlongmaqichegufenyouxiangongsi','alfaromeo', 'shanqitongjia1', 'xingchi', 'lotus', 'hyundai', 'kaiyi', 'isuzu-132', 'bmw','ssangyong','astonmartin']

这些首要任务完成后就是拼接了

 start_urls = []# 拼接初始urlfor i in city:for j in car_list:car_url = f"https://{i}.taoche.com/{j}/"start_urls.append(car_url)

打印一下结果
在这里插入图片描述
接下来就是匹配各链接每一页

    def parse(self, response, **kwargs):"""获取每页的url"""page_num_max = response.xpath("""//*[@id="containerId"]/div[1]/div[7]/div/div//a[last()-1]/text()""").extract()# print(page_num_max)page_num_max = page_num_max[0] if page_num_max else '1'for v in range(1, int(page_num_max) + 1):real_url = response.url + '?page=' + str(v)print(real_url)yield scrapy.Request(url=real_url, callback=self.detail_page)pass

打印结果
在这里插入图片描述
最后就是匹配每一页的内容

    def detail_page(self, response):"""获取车子信息"""car_dict = {}# print(response.url)all_car_title = response.xpath("""//*[@id="container_base"]/ul//li/div/div/a/@title""").extract()all_car_img = response.xpath("""//*[@id="container_base"]/ul//li/div/div/a/img/@src""").extract()all_car_years = response.xpath("""//*[@id="container_base"]/ul//li/div[2]/p/i[1]/text()""").extract()all_car_distance = response.xpath("""//*[@id="container_base"]/ul//li/div[2]/p/i[2]/text()""").extract()all_car_area = response.xpath("""//*[@id="container_base"]/ul//li/div[2]/p/i[3]/text()""").extract()all_car_area = all_car_area[0].strip()all_car_price = response.xpath("""//*[@id="container_base"]/ul//li/div[2]/div[1]/i/text()""").extract()if all_car_title:for i in range(len(all_car_title) - 1):car_dict['title'] = all_car_title[i]car_dict['img'] = "https:" + all_car_img[i]car_dict['years'] = all_car_years[i]car_dict['distance'] = all_car_distance[i]car_dict['area'] = all_car_area[i]car_dict['price'] = all_car_price[i]# print(car_dict)

打印结果


今天分享就到这里了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_870501.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django框架学习——从零开始搭建个人网站①基础工作

用pip下载django pip install django创建项目 在所创建项目目录下打开命令行,django-admin startproject [project_namedj]创建项目 django-admin startproject kyasdj创建APP 在创建的kyasdj文件夹下打开命令行,python manage.py startapp [app_name]…

Win7下安装配置IIS 构建自己的网站

一、首先是安装IIS。打开控制面板,找到“程序与功能”,点进去 二、点击左侧“打开或关闭Windows功能” 三、找到“Internet 信息服务”,按照下图打勾即可 等待安装完成 四、安装完成后,再回到控制面板里面,找到“管理工…

网站导航——网站地图和TreeView的使用

ASP.NET站点导航能够在一个中央位置存储指向所有页面的连接,并在列表中呈现这些连接,也可以使用一个特定的Web服务器控件在每个页面上呈现导航菜单。设计站点导航时,使用站点地图描述站点的逻辑结构,使用ASP.NET 控件在网页上显示…

用google协作平台6步轻松建立免费个人网站

前段时间在深度看到一个会员发表了一篇关于Google的协作平台东西的文章,进去一看,原来是Google Sites,去试着建立了一个网站,发现这个协作平台很强大了。不仅拥有所见即所得的方便的编辑器,还有丰富的插件。Google Sit…

Curl 模拟登陆网站得到返回数据

之前有一个布置的任务是要用代码模拟登陆 https://www.biaojiquxiao.com/ 网站得到返回的信息 首先是要输入一个手机号码,当手机号已经咨询过时返回数据,当这个手机号码没有查询过信息时要进行一个文字验证: 将点击的位置发送回去进行验证 当…

xiaowall网站总结之(0)即时验证用户名

终于写完了自己做的网站,刚刚上线.使用的是LAMP环境,本人初学php,遇到了很多问题,这里是实战后的总结,有许多错误和不完善,欢迎大家批评与指教! 这里做个广告.我的个人网站是提供大家上传保存自己编写的网页.给需要练习web程序,和分享,展示网页的朋友提供一些方便. …

一个免费看儿童书的网站

目前主要是外文的: http://www.childrensbooksonline.org/index.htm 感谢 生活帮-LifeBang 提供的信息。

python爬虫 下载视频网站视频

python爬虫 下载视频网站视频 xpath解析页面源码requests.Session() 解决 status_code 302 网页重定向selenium 获取网页遇到 iframe 标签解决办法 最近发现一个比较好的视频网站,里面的资源清晰度很高,就想把自己喜欢的美剧下载到本地保存起来慢慢看。…

python爬虫 打击无良网站弹窗广告

今天又是在网站寻找漂亮小姐姐的一天,发现一个网站还不错,就是有广告在窗口正中间 本来也没多大事,点一下就关闭了。但是在我手痒准备拿出我的F12大法的时候这个网站竟然把F12禁用了,这就勾起了我小小的战斗YW。 我先写了个简单…

迅速有效提高网站流量就是走狗屎运:抢注域名

前记:Godaddy空间的如果不抽风的话,访问速度还是很快的,能ping到200多ms。 现在的人左手是手机电话,右手是QQ的,加在一起就是phoneQQ。 2011年10月28日一次性购入phoneQQ.com phon…

使用git管理nodejs+socket.io+redis+juicer+waterfall+ubuntu+aws ec2开发网站

使用git管理nodejssocket.ioredisjuicerwaterfallnginxubuntuaws ec2开发网站 使用git管理nodejssocket.ioredisjuicerwaterfallubuntuaws ec2开发网站 服务器:aws ec2 Ubuntu 12.04 (64位) web服务器:nginx1.3.5 缓存服务器:redis2.4.16 nod…

使用git管理nodejs+socket.io+redis+juicer+waterfall+ubuntu+aws ec2开发网站

使用git管理nodejssocket.ioredisjuicerwaterfallubuntuaws ec2开发网站 服务器:aws ec2 Ubuntu 12.04 (64位) web服务器:nginx1.3.5 缓存服务器:redis2.4.16 nodeJS: 0.8.8 框架:express 3.0.0 模板渲染:juicer 数据交…

怎么选择一个好的网站建设公司?需要注意些什么?

亲身经历分享下哈,选择的话,看规模吧,见过有很多公司,表面上是挂着某某网站建设公司,提供全套高度定制的建站程序,宣称自己的网站程序都是自己公司技术写的,但是其实如果懂一点建站常识的都可以…

想自己做个网站,常用的自助建站哪个好呢?需要注意什么

做网站图什么呢,大部分是人建站是想通过建站获取更多展现和流量,那么想要更多展现的话,我们更多的是去依靠搜索引擎,那么想要有好的排名,我们就要考虑到seo,很多人在建站初期根本不会去考虑seo的问题&#…

做一个公司官方网站要多少钱?怎么去做呢?

建站的话,需要有域名,服务器和建站程序,域名的话一般几十块钱一年,服务器的话,要看配置,价格不一定,几百到几万的都有,建站程序看方式,价格也都不同! 这边就…

如何设计一个网站的?有什么便捷的方法吗?

你是如何设计一个网站的? 梳理一下流程,想要了解工作顺序是怎样的, 概念生成,选色,字体,平面稿,交互稿,动效设计etc.如何安排? 个人或者企业初期的时候,一…

怎么估算一个网站建设成本?大概多少钱?

建站的话,需要有域名,服务器和建站程序,域名的话一般几十块钱一年,服务器的话,要看配置,价格不一定,几百到几万的都有,建站程序看方式,价格也都不同! 这边就…

新手怎么从零到建立自己的网站?用什么方式呢?

我有域名,想问下大神们,一个建站小白要怎么从无到有建立属于自己的网站? 以前读书学过建站的课程,用的是Dw软件,但是具体的流程不知道这么多年过去了是否有改变?! 所以大神最好可以分享一下建…

医疗行业的建站需要注意些什么?怎么选择?

医疗行业比较敏感,所以对网站的要求比较高哦!所以选择建站公司的话,最好是选择大服务商的! 本人也是从事医疗行业的,主要负责网站的seo工作,所以对这方面会稍微了解,这边就分享下一些经验&…

公司做一个网站的流程是什么?需要准备些什么呢?

虽然随着时代发展,网站的制作分的很细,但如果综合来说,一个网站的制作在各个部分之间的接合是怎样的? 这边就通俗的说下哈,建站就是需要3样东西,域名,服务器,网站程序,这…