Scrapy框架第一个爬虫项目--汽车之家二手车列表信息抓取

废话不多说,上代码

1、以下代码为spider文件

import scrapy
from car_home.items import che168Item

class Che168Spider(scrapy.Spider):
    name = ‘che168‘
    allowed_domains = [‘che168.com‘]
    start_urls = [‘https://www.che168.com/beijing/list/‘]

    def parse(self, response):
        #获取多个列表页链接,爬取多页数据
        max_page = response.xpath(‘//div[@id="listpagination"]/a/text()‘)[-1].extract()

        base_url = ‘https://www.che168.com/beijing/a0_0msdgscncgpi1ltocsp{}exx0/‘
        for i in range(1,int(max_page)+1):
            url = base_url.format(i)
            yield scrapy.Request(url,callback=self.parse_list)

    def parse_list(self, response):
        titles = response.xpath(‘//div[@class="title"]/a/text()‘).extract()
        travel = response.xpath(‘//div[@class="details"]/ul/li[1]/span[1]/text()‘).extract()
        year = response.xpath(‘//div[@class="details"]/ul/li[2]/span[1]/text()‘).extract()
        type = response.xpath(‘//div[@class="details"]/ul/li[3]/span[1]/text()‘).extract()
        address = response.xpath(‘//div[@class="details"]/ul/li[4]/span[1]/text()‘).extract()
        standard = response.xpath(‘//div[@class="details"]/ul/li[5]/span[1]/text()‘).extract()
        nums = response.xpath(‘//div[@class="details"]/ul/li[6]/span[1]/text()‘).extract()
        item = che168Item()
        for i in range(0,len(titles)):
            item[‘titles‘] = titles[i]
            item[‘travel‘] = travel[i]
            item[‘year‘] = year[i]
            item[‘type‘] = type[i]
            item[‘address‘] = address[i]
            item[‘standard‘] = standard[i]
            item[‘nums‘] = nums[i]
            #print(item)

            yield item

2、items

class che168Item(scrapy.Item):
    titles =scrapy.Field()
    travel =scrapy.Field()
    year =scrapy.Field()
    type =scrapy.Field()
    address =scrapy.Field()
    standard =scrapy.Field()
    nums =scrapy.Field()

    def get_insert_sql(self):
        sql = ‘insert into car_home(titles,travel,year,type,address,standard,nums) values(%s, %s, %s, %s, %s, %s, %s)‘
        data = (self[‘titles‘],self[‘travel‘],self[‘year‘],self[‘type‘],self[‘address‘],self[‘standard‘],self[‘nums‘])
        return (sql,data)

3、pipeline

from car_home.sql_unit import SqlUnit

class CarHomePipeline(object):
    def process_item(self, item, spider):
        return item

class che168Pipeline(object):

    def process_item(self, item, spider):
        s = SqlUnit()
        (sql,data) = item.get_insert_sql()
        s.execute_sql(sql,data)
        return item

4、数据库存储封装

import pymysql

class SqlUnit(object):

    def __init__(self):
        self.db = pymysql.connect("127.0.0.1","root","123456","home")
        self.cursor = self.db.cursor()

    def execute_sql(self,sql,data=None):
        self.cursor.execute(sql,data)
        self.db.commit()

    def __del__(self):
        self.cursor.close()
        self.db.close()

5、settings中将che168Pipeline加入ITEM_PIPELINES

原文地址:https://www.cnblogs.com/tmd201304/p/9545209.html

时间: 2024-10-07 11:26:54

Scrapy框架第一个爬虫项目--汽车之家二手车列表信息抓取的相关文章

开源爬虫 ── 专业、强大的万维网资源定向抓取、爬抓工具

网络爬虫 又称网页蜘蛛.网络机器人.在 FOAF 社区常称网页追逐者.网络爬虫 是一种按照一定规则,自动抓取万维网信息的程序或脚本.另外一些不常使用名称还有蚂蚁.自动索引.模拟程序或蠕虫. 随着网络的迅速发展,万维网成为大量信息的载体,如何有效提取并利用这些信息成为一个巨大挑战.搜索引擎 (Search Engine),譬如:传统搜索引擎 AltaVista.Yahoo!.Google.百度.360 搜索.好搜.搜狗.Bing 等作为辅助人们检索信息的工具,已成为用户访问万维网的入口和指南.但是

Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片

什么是Python爬虫开发 Python爬虫开发,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析.挖掘.机器学习等提供重要的数据源. Python爬虫实例参考 这是一个用Python爬虫实现抓取京东店铺信息以及下载图片的例子,仅供参考. 信息抓取: 图片下载的:注意: 1.在选择信息的时候用CS

[转载]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程

我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要抓取的目标 制作爬虫(Spider):制作爬虫开始爬取网页 存储内容(Pipeline):设计管道存储爬取内容 好的,基本流程既然确定了,那接下来就一步一步的完成就可以了. 1.新建项目(Project) 在空目录下按住Shift键右击,选择“在此处打开命令窗口”,输入一

scrapy抓取拉勾网职位信息(一)——scrapy初识及lagou爬虫项目建立

本次以scrapy抓取拉勾网职位信息作为scrapy学习的一个实战演练 python版本:3.7.1 框架:scrapy(pip直接安装可能会报错,如果是vc++环境不满足,建议直接安装一个visual studio一劳永逸,如果报错缺少前置依赖,就先安装依赖) 本篇主要对scrapy生成爬虫项目做一个基本的介绍 tips:在任意目录打开cmd的方式可以使用下面这两种方式 shift + 右键打开cmd(window10的powershell你可以简单理解为cmd升级版) 在路径框直接输入cmd

【最新原创】中国移动(中国联通)_通信账单,详单,个人信息抓取爬虫代码

概要: 1.因为公司需要,就花了一点时间写了一下三大运营商通信数据的抓取,涉及到Web上你所看得到的一切数据. 代码没啥技术含量,重点在于抓包分析过程.期间遇到了很多未知的困难,都一一克服了. 2.由于抓取数据的隐私性,我们的抓包是假设在用户已知自己数据被抓取,并且同意告知短信验证码的情况下进行的, 不属于黑客范畴! 3.整个过程,包括重建数据库表结构,解析json等如同逆向运营商的数据库一般.总体来说,三大运营商更新频率不算频繁,还算较稳定,数据结构,网页结构等都不会做很大的变动. 整体效果如

如何使用Scrapy框架实现网络爬虫

现在用下面这个案例来演示如果爬取安居客上面深圳的租房信息,我们采取这样策略,首先爬取所有租房信息的链接地址,然后再根据爬取的地址获取我们所需要的页面信息.访问次数多了,会被重定向到输入验证码页面,这个问题后面再解决 1. 创建项目: 进入项目路径,使用命令 scrapy startproject anjuke_urls 进入项目路径,使用命令 scrapy startproject anjuke_zufang 2. 创建爬虫文件: 进入项目anjuke_urls的spider路径,使用命令 sc

Scrapy框架CrawlSpider类爬虫实例

CrawlSpider类爬虫中: rules用于定义提取URl地址规则,元祖数据有顺序 #LinkExtractor 连接提取器,提取url地址  #callback 提取出来的url地址的response会交给callback处理 #follow 当前url地址的响应是否重新经过rules进行提取url地址 cf.py具体实现代码如下(简化版): 1 # -*- coding: utf-8 -*- 2 import scrapy 3 from scrapy.linkextractors imp

网络爬虫入门:你的第一个爬虫项目(requests库)

0.采用requests库 虽然urllib库应用也很广泛,而且作为Python自带的库无需安装,但是大部分的现在python爬虫都应用requests库来处理复杂的http请求.requests库语法上简洁明了,使用上简单易懂,而且正逐步成为大多数网络爬取的标准. 1. requests库的安装采用pip安装方式,在cmd界面输入: pip install requests 小编推荐一个学python的学习qun 491308659 验证码:南烛无论你是大牛还是小白,是想转行还是想入行都可以来

scrapy框架与python爬虫

原文地址:https://www.cnblogs.com/xifengqidama/p/9724275.html