当前位置: 首页 > news >正文

北京网站建设解决方案百度竞价排名服务

北京网站建设解决方案,百度竞价排名服务,汉中做网站电话,html网页课程设计报告一、scrapy简介 scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 Scrapy 使用了Twisted异步网络框架,可以加快我们的下载速度。 Scrapy文档地址:http://scrapy-chs.readthedocs.io/z…

一、scrapy简介

  1. scrapy的概念
    Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。
  • Scrapy 使用了Twisted异步网络框架,可以加快我们的下载速度
    • Scrapy文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
  1. 工作流程
  • 传统的爬虫流程
    在这里插入图片描述

  • scrapy的流程

在这里插入图片描述

  • 描述
  1. 爬虫中起始的url构造成request对象–>爬虫中间件–>引擎–>调度器
  2. 调度器把request–>引擎–>下载中间件—>下载器
  3. 下载器发送请求,获取response响应---->下载中间件---->引擎—>爬虫中间件—>爬虫
  4. 爬虫提取url地址,组装成request对象---->爬虫中间件—>引擎—>调度器,重复步骤2
  5. 爬虫提取数据—>引擎—>管道处理和保存数据

在这里插入图片描述

二、关于中间件

  1. 爬虫中间件(Spider Middleware)

作用: 爬虫中间件主要负责处理从引擎发送到爬虫的请求和从爬虫返回到引擎的响应。这些中间件在请求发送给爬虫之前或响应返回给引擎之前可以对它们进行处理。

  • 功能:
  1. 修改请求或响应。
  2. 在请求被发送到爬虫之前进行预处理。
  3. 在响应返回给引擎之前进行后处理。
  4. 过滤或修改爬虫产生的请求和响应。
  • 常见的爬虫中间件:
  • HttpErrorMiddleware: 处理 HTTP 错误。
  • OffsiteMiddleware: 过滤掉不在指定域名内的请求。
  • RefererMiddleware: 添加请求的 Referer 头。
  • UserAgentMiddleware: 添加请求的
  • User-Agent 头。
  • DepthMiddleware: 限制爬取深度。
  1. 下载中间件(Downloader Middleware)
  • 作用: 下载中间件主要负责处理引擎发送到下载器的请求和从下载器返回到引擎的响应。这些中间件在请求发送给下载器之前或响应返回给引擎之前可以对它们进行处理。

  • 功能:

  1. 修改请求或响应。
  2. 在请求被发送到下载器之前进行预处理。
  3. 在响应返回给引擎之前进行后处理。
  4. 对请求进行代理、设置代理认证等。
  • 常见的下载中间件:
  • HttpProxyMiddleware: 处理 HTTP 代理。
  • UserAgentMiddleware: 添加请求的 User-Agent头。
  • RetryMiddleware: 处理请求重试。
  • HttpCompressionMiddleware: 处理 HTTP 压缩。
  • CookiesMiddleware: 管理请求的 Cookies。

三、scrapy的三个内置对象

  1. scrapy.Item:
  • 作用: scrapy.Item 是一个简单的容器对象,用于封装存储爬取到的数据。每个 scrapy.Item 对象都代表了网站上的一个特定数据项。

  • 使用: 在 Scrapy 爬虫中,你可以定义一个继承自 scrapy.Item 的类,定义这个类的属性来表示要提取的字段。这样,当你从页面中提取数据时,可以将提取到的数据存储在 scrapy.Item 对象中

  • 示例:

import scrapyclass MyItem(scrapy.Item):title = scrapy.Field()url = scrapy.Field()
  1. scrapy.Request:
  • 作用: scrapy.Request 对象用于指示 Scrapy 下载某个URL,并在下载完成后返回一个 scrapy.Response 对象

  • 使用: 在爬虫中,你可以创建 scrapy.Request 对象,指定要访问的URL、回调函数、请求方法、请求头等信息,然后通过调用这个对象,将请求添加到爬虫的调度队列中

  • 示例:

import scrapy
class MySpider(scrapy.Spider):name = 'myspider'def start_requests(self):urls = ['http://example.com/page1', 'http://example.com/page2']for url in urls:yield scrapy.Request(url=url, callback=self.parse)def parse(self, response):# 处理响应的逻辑pass
  1. scrapy.Response:
  • 作用: scrapy.Response 对象表示从服务器接收到的响应,它包含了网页的内容以及一些有关响应的元数据。

  • 使用: 在爬虫的回调函数中,你将接收到的响应作为参数,通过对 scrapy.Response 对象的操作,提取数据或者进一步跟踪其他URL

  • 示例:

import scrapyclass MySpider(scrapy.Spider):name = 'myspider'def start_requests(self):urls = ['http://example.com/page1']for url in urls:yield scrapy.Request(url=url, callback=self.parse)def parse(self, response):# 使用 response.xpath 或 response.css 提取数据title = response.xpath('//h1/text()').get()

这三个内置对象是构建 Scrapy 爬虫时非常重要的组件。scrapy.Item 用于封装爬取到的数据,scrapy.Request 用于定义要爬取的URL和请求参数,scrapy.Response 用于处理从服务器返回的响应。通过巧妙地使用这些对象,你可以有效地构建和组织你的爬虫逻辑。

四、scrapy的入门使用

  1. 安装
pip/pip3 install scrapy
  1. scrapy项目开发流程
  • 创建项目:
        scrapy startproject mySpider
    在这里插入图片描述
  • 创建一个爬虫:
    1.进入刚才的项目路径
    2.执行生成命令:scrapy genspider <爬虫名字> <允许爬取的域名>
    例如:scrapy genspider baidui baidu.com
    3.执行后就会在myspider/spider下,生成一个baidu.py,这就是我们的爬虫文件
    在这里插入图片描述
  • 提取数据:
        根据网站结构在spider中(即baidu.py文件)实现数据采集相关内容
  • 保存数据:
        使用pipeline进行数据后续处理和保存
  1. 定义一个管道类
  2. 重写管道类的process_item方法
  3. process_item方法处理完item之后必须返回给引擎
  4. 在setting文件中启用管道

管道文件

import jsonclass ItcastPipeline():# 爬虫文件中提取数据的方法每yield一次item,就会运行一次# 该方法为固定名称函数def process_item(self, item, spider):print(item)return item

配置文件

#值越小越先运行
ITEM_PIPELINES = {'myspider.pipelines.ItcastPipeline': 400
}
  1. 运行爬虫项目
scrapy crawl baidu
http://www.mmbaike.com/news/37738.html

相关文章:

  • 在vs2010里怎么做网站昆明seo网站管理
  • 跑腿个人网站怎么做广州十大营销策划公司
  • 佛山最好的网站建设牛排seo系统
  • 如何做网站系统个人博客登录首页
  • 网站建设托管优化大师手机版
  • wordpress主题knowseo 培训教程
  • 经典网站设计信息发布网站有哪些
  • 自己做的网站可以运营不百度app广告
  • ae射频电源成色汕头seo外包公司
  • 和网站建设相关的行业百度搜索引擎原理
  • 网站程可以自己做吗引流推广平台
  • 黄冈做网站公司2022近期时事热点素材摘抄
  • 新公司刚成立做网站今晚日本比分预测
  • 南昌网站外包成都seo培
  • 企业网站必备模块廊坊关键词排名优化
  • 怎么做一家网站公司网站模版
  • 小程序开发语言seo评测论坛
  • 天津城市建设招标网站制定营销推广方案
  • 做的网站怎么样才能再网上看到今日国内新闻头条大事
  • 可以货代从哪些网站开发客户全网推广平台有哪些
  • 做网站公司郑州郑州的网站建设公司哪家好北京网站建设
  • 传奇手游变态版本互联网seo是什么意思
  • o2o网站建设信息网站综合查询工具
  • 做网站还得买域名吗西安百度关键词优化排名
  • 公安局网站不备案google官方下载app
  • 做文交所的都有哪些网站竞价推广账户竞价托管费用
  • 网站建设合同的性质江北seo页面优化公司
  • 蚌埠哪有做网站的在线数据分析工具
  • wordpress全站登陆可见深圳关键词优化怎么样
  • 网络推广模板网站怎样推广网站