Scrapy笔记

scrapy命令

  • 创建scrapy项目
scrapy startproject myStestSpider #(项目名称)
  • 创建爬虫文件
    进入spiders文件夹
scrapy genspider myStestSpider "domain"
  • 运行爬虫
scrapy crawl myStestSpider

不打印Debug信息

scrapy crawl spider1Project -L WARNING

Request类

爬取普通网站,不需要验证码,不需要登入的界面,我们一般用scrapy.Request类直接去爬取信息

FormRequest

  • 模拟表单或Ajax提交post请求的时候用,带有 formdata 方法,专门用来设置表单字段数据,即填写账号、密码,实现登入,默认method也是POST。
  • FormRequest相当于是手动指定post
  • scrapy.FormRequest 同等于 scrapy.http.FormRequest

Request的重要参数

Request中的主要参数:

# url是要爬取的网址
# callback是回调函数
# method是请求的方式post还是get
# headers是浏览器伪装的头信息
# formdata表单提交的数据(FormRequest类扩展的方法)
# body是网页源代码信息
# cookies是登入某网站后,网站在你电脑上保留的信息
# meta要携带或者传递的信息 自定义,向response传递数据
# encoding是编码方式
# priority用来设置访问网站的优先级
# dont_filter是否允许重复爬取网站
# errback(callback) 在发生错误的时候执行的函数。

Response的重要参数

Response只是一个基类,根据响应内容的不同有如下子类:

TextResponse
HtmlResponse
XmlResponse

  • HtmlResponse 对象的属性及方法
    • url
      HTTP 响应的url地址,str 类型。

    • status
      HTTP 响应的状态码,int 类型。

    • headers
      HTTP 响应的头部,dict 类型。可以调用get或getlist方法对其进行访问。

    • body
      HTTP 响应正文,bytes 类型。

    • text
      文本形式的HTTP响应正文,str 类型,它是由 response.body 使用 response.encoding 解码得到的。
      response.text = response.body.decode(response.encoding)

    • encoding
      HTTP 响应正文的编码,它的值可能是从HTTP响应头部或正文中解析出来的

    • request
      产生该HTTP 响应的Request对象。

    • meta
      即 response.request.meta, 在构造 Request对象时,可将要传递给响应处理函数的信息通过meta参数传入;响应处理函数处理响应时,通过response.meta 将信息取出。

    • selector
      Selector 对象用于在Response 中提取数据。

    • xpath(query)
      使用XPath选择器在Response中提取数据;它是 response.selector.xpath 方法的快捷方式。

    • css(query)
      使用 CSS选择器在Response中提取数据;它是 response.selector.css方法的快捷方式。

    • urljoin (url)
      用于构造绝对 url 。当传入的url参数是一个相对地址时,根据response.url 计算出相应的绝对 url。

原文地址:https://www.cnblogs.com/zh672903/p/10987712.html