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', ')整理', ' ']

浙公网安备 33010602011771号