美文网首页零基础-一起学爬虫
【零基础学爬虫】scrapy中选择器详解

【零基础学爬虫】scrapy中选择器详解

作者: 大菜鸟_ | 来源:发表于2019-04-23 10:26 被阅读0次

简介

对网页解析时,不可避免需要使用选择器。本文主要介绍scrapy中的各类选择器,选择器其实就是scrapy内置selector对象:

本文介绍一个模糊的css查询:

<html>
 <head>
  <base href='http://example.com/' />
  <title>Example website</title>
 </head>
 <body>
  <div id='images'>
   <a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a>
   <a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a>
   <a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a>
   <a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a>
   <a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a>
  </div>
 </body>
</html>
First, let’s ope

如何选择出上面html中href属性值中包含image关键词的a标签中的src属性值?即

  • 选出 a标签
  • 选出href值包含image的a标签
  • 获取img标签
  • 获取src属性的值
    文章使用scrapy shell调试:

上面html页面网址为:
https://docs.scrapy.org/en/latest/_static/selectors-sample1.html

执行命令进入shell环境:
scrapy shell https://docs.scrapy.org/en/latest/_static/selectors-sample1.html
执行下面命令即可选中:href属性值包含image的a标签中的img标签中的src属性的值:
response.css('a[href=image] img::attr(src)').extract()*
输出结果:


另外,scrapy还支持正则表达式的匹配,有时使用css不太好匹配,比如:匹配a标签中Name:之后的内容:
response.css('a::text').extract()不太好用


使用正则表达式可以比较方便的提取“”之后的内容
response.css('a::text').re('Name:(.*)')

下面指令就仅仅返回第一个匹配结果
response.css('a::text').re_first('Name:(.*)')

另外,还有几个比较好用的命令:

  • view
    它会帮你请求一个url,并把document下载下来保存成一个文件,并自动使用浏览器打开下载的网页,打开response的预览
    scrapy fview http://www.baidu.com
    fetch
    scrapy fetch http://www.baidu.com
    返回网页的源码

扫描下方二维码,及时获取更多互联网求职面经javapython爬虫大数据等技术,和海量资料分享
公众号菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;
公众号菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目资料很全,你想找的几乎都有

扫码关注,及时获取更多精彩内容。(博主今日头条大数据工程师)

相关文章

网友评论

    本文标题:【零基础学爬虫】scrapy中选择器详解

    本文链接:https://www.haomeiwen.com/subject/agbcwqtx.html