Scrapy杂项

2开头的http状态码 表示请求成功
200 成功处理了请求,一般情况下都是返回此状态码

4开头的http状态码表示请求出错
400 请求出错 
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 
401 请求要求身份验证。
407 此状态代码与401类似,但指定请求者应当授权使用代理。 
在可为此请求提供服务之前,您必须验证此代理服务器。
404 服务器找不到请求的网页。

5开头状态码并不常见,但是我们应该知道
500 (服务器内部错误) 服务器遇到错误,无法完成请求。 
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

<ol class="page-navigator">
  <li class="current"><a href="http://lab.scrapyd.cn/page/1/">1</a></li>
  <li><a href="http://lab.scrapyd.cn/page/2/">2</a></li>
  <li><a href="http://lab.scrapyd.cn/page/3/">3</a></li>
  <li><a href="http://lab.scrapyd.cn/page/4/">4</a></li>
</ol>

提取属性我们是用:“标签名::attr(属性名)” 比如response.css("a::attr(href)")
要提取图片地址的表达式就是:img::attr(src)

 

<div class="post-content" itemprop="articleBody">
  <p>如果你因失去了太阳而流泪,那么你也将失去群星了。 <br>
    If you shed tears when you miss the sun, you also miss the stars. 
  </p>
  <p>
    <a href="http://www.scrapyd.cn">scrapy中文网(</a><a href="http://www.scrapyd.cn">http://www.scrapyd.cn</a>)整理 
  </p>       
</div>

如果我们要提取class=“post-content”里面的所有文字
response.css(".post-content *::text").extract()
::tex“t前面有个“*”号,表示选择所有元素

D:\work\pycode> scrapy shell http://lab.scrapyd.cn/archives/28.html
>>> response.css("div.post-content *::text").extract()
['\n            ', 
'如果你因失去了太阳而流泪,那么你也将失去群星了。 ', 
'If you shed tears when you miss the sun, you also miss the stars. ', 
'scrapy中文网(', 'http://www.scrapyd.cn', ')整理', 
'        '
]

 

 

 

>>> response.css("div.post-content *::text").extract()['\n            ', '如果你因失去了太阳而流泪,那么你也将失去群星了。 ', 'If you shed tears when you miss the sun, you also miss the stars. ', 'scrapy中文网(', 'http://www.scrapyd.cn', ')整理', '        ']

posted @ 2019-01-25 11:13  牧 天  阅读(137)  评论(0)    收藏  举报