scrapy 简单爬取58,百度,汽车之家

scrapy 简介:

1.创建项目(项目名字不能包含中文,开头不能是数字)

创建一个项目文件夹,cmd 进入该文件夹下 输入:

scrapy startproject scrapy_58

 创建好了的项目目录结构

 2.创建爬虫文件

在 spiders 文件夹中创建爬虫文件
        进入 spiders 文件目录创建爬虫文件
        scrapy genspider 爬虫文件的名字 域名
        例如: scrapy genspider baidu www.baidu.com
3.运行爬虫
scrapy crawl 爬虫的名字
        例如:scrapy crawl baidu
        百度会有一个 robots 协议,不让爬,修改 settings.py 中 :ROBOTSTXT_OBEY = False
4. scrapy 项目结构
项目名字
        spiders 文件夹(存储的是爬虫文件)
            init
        init
        items 定义数据结构的地方,爬取数据都包含哪些
        middleware 中间件 代理
        pipelines 管道 用来处理下载的数据
        settings 配置文件 robots协议 UA定义
5.工作原理
spiders 发送 url 给引擎,引擎 发给 调度器;
    调度器 发送请求给 引擎,引擎 发给 下载器;
    下载器 上互联网拿数据,下载器 把拿到的数据发给 引擎;   (response)
    引擎 把数据发给 spiders, spiders 通过xpath解析数据;
    spiders 解析结果为数据发给 管道, 管道 获得解析成功的结果存储文件。
    spiders 解析结果为url发送给 引擎,引擎 发给 调度器;
6. ipython
pip install ipython
    方便调试 scrapy xpath ,不用每次去运行 scrapy crawl baidu
    win + r => cmd  输入: scrapy shell www.baidu.com
    例如:
        scrapy shell www.baidu.com
        a = response.xpath('//input[@id="su"]/@value)
        a.extract_first()

爬取 58后端开发职位网页

获取请求的 url,这里的 url 在上面第二步创建爬虫的时候需要去掉 https:// 然后输入。

 content 即为 网页源码,然后从里面提取需要的数据即可

 获取汽车之家宝马名字和价格

按照前面的步骤创建好爬虫文件。

获取请求的 url

 由于该项目过于简单,这里只在 carhome.py 中写入代码,其他文件未改动。

import scrapy


class CarhomeSpider(scrapy.Spider):
    name = 'carhome'
    allowed_domains = ['https://car.autohome.com.cn/price/brand-15.html']
    # 请求接口 html 结尾的不需要在末尾加 /
    start_urls = ['https://car.autohome.com.cn/price/brand-15.html']

    def parse(self, response):
        carname_list = response.xpath('//div[@class="main-title"]/a/text()') # xpath 选择汽车名字
        carprice_list = response.xpath('//div[@class="main-lever"]//span/span/text()')
        for i in range(len(carname_list)):
            carname = carname_list[i].extract()  #提取 seletor 对象的data属性值
            carprice = carprice_list[i].extract()
            print(carname,carprice)

 结果输出如下:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Scrapy框架爬取我爱我家网站数据,并将数据存入数据库,可以按照以下步骤进行操作: 1. 首先,创建Scrapy项目。在命令行中执行以下命令来创建一个新的Scrapy项目: scrapy startproject woaiwojia 2. 进入项目的根目录,并创建一个名为spiders的文件夹,用于存放爬虫文件。运行以下命令: cd woaiwojia mkdir spiders 3. 在spiders文件夹中创建一个名为woaiwojia_spider.py的文件,用于编写爬虫代码。 4. 打开woaiwojia_spider.py文件,并导入所需库和模块: import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule import pymongo 5. 在woaiwojia_spider.py文件中,创建一个名为WoaiwojiaSpider的类,并继承CrawlSpider类: class WoaiwojiaSpider(CrawlSpider): name = 'woaiwojia' allowed_domains = ['woaiwojia.com'] start_urls = ['http://www.woaiwojia.com'] 6. 在WoaiwojiaSpider类中,定义rules列表,用于配置爬取规则: rules = ( Rule(LinkExtractor(allow=r'/\d+\.html'), callback='parse_item', follow=True), ) 7. 在WoaiwojiaSpider类中,定义parse_item方法,用于解析爬取到的数据,并存入数据库: def parse_item(self, response): # 解析数据逻辑,获取需要的数据 item = {} item['title'] = response.xpath('//title/text()').extract_first() item['content'] = response.xpath('//p/text()').extract_first() # 连接数据库并存储数据 client = pymongo.MongoClient('mongodb://localhost:27017/') db = client['woaiwojia'] collection = db['data'] collection.insert_one(item) return item 8. 在命令行中执行以下命令来启动爬虫scrapy crawl woaiwojia 以上就是使用Scrapy框架爬取我爱我家网站数据并存入数据库的基本步骤,可以根据实际情况进行相应的修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值