爬取汽车之家北京二手车信息

经测试,该网站:https://www.che168.com/beijing/list/ 反爬机制较低,仅需要伪造请求头设置爬取速率,但是100页之后需要登录,登录之后再爬要慎重,一不小心就会永久封号。爬取的数据以各种类型存放,下面展示保存到mysql数据库中:

代码解析:

程序源码自提Github:https://github.com/H-Ang/carsSpider

爬虫主程序

# 汽车之家爬虫,北京二手车
import requests
from lxml import etree
from data_save import *
import timeclass Car_second():name = ''gonglishu = ''brought_year = ''location = ''img_url = ''price = ''def getInfors(url,i):print("Page %d is saving." % i)# 构造请求头headers = {"Cache-Control":"no-cache","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36","Referer":"https://www.che168.com/beijing/list/",}response = requests.get(url=url,headers=headers)html = response.textob_xml = etree.HTML(html)infos = ob_xml.xpath('//*[@id="viewlist_ul"]//li[not(contains(@class,"adv-img"))]/a')secondCars = []for info in infos:if info.xpath('.//img/@src2') == []:img = info.xpath('.//img/@src')[0]else:img = info.xpath('.//img/@src2')[0]name = info.xpath('.//h4/text()')[0]price = info.xpath('.//span[@class="price"]/text()')[0] + info.xpath('.//em/text()')[0]myl = info.xpath('.//p/text()')[0].split('/')gonglishu = myl[0]brought_year = myl[1]location = myl[2]secondCar = Car_second()secondCar.name = namesecondCar.img_url = imgsecondCar.brought_year = brought_yearsecondCar.location = locationsecondCar.gonglishu = gonglishusecondCar.price = pricesecondCars.append(secondCar)return secondCarsif __name__ == '__main__':url = 'https://www.che168.com/beijing/a0_0msdgscncgpi1ltocsp{}exx0/'for i in range(1,101):car_infors = getInfors(url.format(i),i)time.sleep(0.95)#savdFile(car_infors)saveMysql(car_infors)

保存数据

def savdFile(datas):# 保存到文本文件with open('J:\DATAs\北京市二手车(汽车之家)\data.txt','a+',encoding='utf-8') as f:for data in datas:# try:#     name = data.name#     gonglishu = data.gonglishu#     brought_year = data.brought_year#     location = data.location#     img_url = data.img_url#     price = data.price#     writeCont = name+"/"+gonglishu+"/"+brought_year+"/"+location+"\n"+price+"图片地址:"+img_url#     f.write(writeCont+'\n\n')# except:#     print(writeCont)name = data.namegonglishu = data.gonglishubrought_year = data.brought_yearlocation = data.locationimg_url = data.img_urlprice = data.pricewriteCont = name+"/"+gonglishu+"/"+brought_year+"/"+location+"\n"+price+"图片地址:"+img_urlf.write(writeCont+'\n\n')print('保存完成。')# 将数据保存到数据库中
from  sqlalchemy import Column,create_engine,Integer,String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmakerBase = declarative_base()class Car(Base):__tablename__ = "second_cars"id = Column(Integer,primary_key=True,autoincrement=True,nullable=False)carName = Column(String(100))gonglishu = Column(String(20))brought_year = Column(String(10))location = Column(String(10))image_url = Column(String(200))price = Column(String(10))def saveMysql(datas):connect = create_engine("mysql+pymysql://root:root@127.0.0.1:3306/second_cars",encoding='utf-8',echo=True)Base.metadata.create_all(connect)DBsession = sessionmaker(bind=connect)session = DBsession()for data in datas:car = Car(carName=data.name,gonglishu = data.gonglishu,brought_year = data.brought_year,price=data.price,location = data.location,image_url = data.img_url,)session.add(car)session.commit()session.close()

反思

保存到mysql数据库是,创建新对象并传参时有点复杂,我曾经记得有种很简单明了的方法,现在怎么也想不起来,望指教哈。

爬取汽车之家北京二手车信息相关推荐

  1. Python 爬虫实战入门——爬取汽车之家网站促销优惠与经销商信息

    在4S店实习,市场部经理让我写一个小程序自动爬取汽车之家网站上自家品牌的促销文章,因为区域经理需要各店上报在网站上每一家经销商文章的露出频率,于是就自己尝试写一个爬虫,正好当入门了. 一.自动爬取并输 ...

  2. python爬取汽车之家_python爬虫实战之爬取汽车之家网站上的图片

    随着生活水平的提高和快节奏生活的发展.汽车开始慢慢成为人们的必需品,浏览各种汽车网站便成为购买合适.喜欢车辆的前提.例如汽车之家网站中就有最新的报价和图片以及汽车的相关内容,是提供信息最快最全的中国汽 ...

  3. python爬虫(二十四)爬取汽车之家某品牌图片

    爬取汽车之家某品牌图片 需求 爬取汽车之家某品牌的汽车图片 目标url https://car.autohome.com.cn/photolist/series/52880/6957393.html# ...

  4. python3 爬取汽车之家所有车型数据操作步骤(更新版)

    题记: 互联网上关于使用python3去爬取汽车之家的汽车数据(主要是汽车基本参数,配置参数,颜色参数,内饰参数)的教程已经非常多了,但大体的方案分两种: 1.解析出汽车之家某个车型的网页,然后正则表 ...

  5. PYTHON爬取汽车之家数据

    PYTHON爬取汽车之家数据 使用知识 使用BeautifulSoup模块 使用正则表达式 使用到多线程爬取 使用说明 使用前请安装BeauifulSoup 起始页面: https://www.aut ...

  6. Python爬取汽车之家所有车型数据,以后买车就用这个参考了

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.大航海计划.BAT内推.学习资料等. 前言 2018年马上就要过去了,经过一年的奋斗,我相 ...

  7. python3 selenium webdriver.Chrome php 爬取汽车之家所有车型详情数据[开源版]

    介绍 本接口是车型库api的补充,用于爬取汽车之家所有车型详情数据 开源地址:https://gitee.com/web/CarApi/tree/master/python 软件架构 python3 ...

  8. python3实例车代码_python3 爬取汽车之家所有车型数据操作步骤(更新版)

    题记: 互联网上关于使用python3去爬取汽车之家的汽车数据(主要是汽车基本参数,配置参数,颜色参数,内饰参数)的教程已经非常多了,但大体的方案分两种: 1.解析出汽车之家某个车型的网页,然后正则表 ...

  9. python3爬虫系列16之多线程爬取汽车之家批量下载图片

    python3爬虫系列16之多线程爬取汽车之家批量下载图片 1.前言 上一篇呢,python3爬虫系列14之爬虫增速多线程,线程池,队列的用法(通俗易懂),主要介绍了线程,多线程,和两个线程池的使用. ...

最新文章

  1. 正则 不能有中文逗号_Python爬虫教程-19-数据提取-正则表达式(re)
  2. 使一个div垂直+水平居中的几种方法
  3. 独家干货 | 吴恩达深度学习专项课程精炼笔记!
  4. JavaScript 中的this的简便判断
  5. 数据结构拾遗(1) --红黑树的设计与实现(上)
  6. autobench 快速入门
  7. 两个变量相乘_自动控制原理-信号流图与系统状态变量传递函数之间联系如此紧密...
  8. Python2.x vs Python3
  9. C语言_函数指针高级用法
  10. RUP大讲堂(第五讲)-基于用例的需求工程技术
  11. 【UVA140】Bandwidth(最优性剪枝+全排列+思路)
  12. android hook 模拟点击_查找和定位Android应用的按钮点击事件的代码位置基于Xposed Hook实现...
  13. 次世代教程_角色《佛特艾斯》制作具体分析
  14. java 多线程高级面试_15个顶级Java多线程面试题及答案
  15. Goole Tag Manager 介绍
  16. [NTUSTISC pwn LAB 2]栈溢出:gdb动态调试bof2
  17. html鼠标移动到图片上显示冒泡框,Bootstrap 教程 - 提示冒泡(Tooltip)
  18. 关于如何将java桌面程序打包成exe可执行文件
  19. 性格色彩测试android程序开发之六--activity界面
  20. unity全免费下载网站 源代码插件模型场景全部免费

热门文章

  1. 图片转文字的工具有哪些?分享两个实用转换工具
  2. Win11 edge浏览器开启夜间模式
  3. DP4361国产六通道立体声D/A音频转换器芯片替代CS4361
  4. linux命令(22):linux文件属性详解
  5. AVFrame 与 yuv420那些事
  6. 计算机科学和密码的先驱是,将数学与计算机科学联系起来的先驱者获得数学诺贝尔奖 | quantamagazine...
  7. 飞秋(FeiQ)爱好者 2013年6月,总结。
  8. CleanMyMac4.12.5最新版安装下载教程
  9. 掌上好医APP的推广模式牛逼在哪
  10. 【python】获取历史天气数据