CSS抓取图片

先用CSS提取数据学习章节方法定位文章位置:


图中红色箭头属性为全局唯一

下面图片为要抓取的文章对应图片样例:


图中红色箭头为要抓取图片

下面是对应的html源码
<dl class="list_userbar">

                    <dt>
                        <a href="https://blog.csdn.net/valada" target="_blank" class="user_img">
                            <img src="https://avatar.csdn.net/E/2/6/1_valada.jpg" alt="valada" title="valada">
                        </a>
                    </dt>
                    <dd class="name">
                        <a href="https://blog.csdn.net/valada?utm_source=feed" target="_blank">
                            GitChat的博客                        </a>
                    </dd>
                                            <div class="interval"></div>
                        <dd class="tag">
                            <a href="/nav/ai" target="_blank">
                                人工智能                            </a>
                        </dd>
                                        <div class="interval"></div>
                    <dd class="time">
                        08月14日                    </dd>
                                        <div class="interval"></div>
                    <dd class="blogtitle">
                        来自 <a href="https://blog.csdn.net/valada?utm_source=feed" target="_blank">GitChat 的 blog</a>
                    </dd>
                                        <div class="interactive floatR">
                        <!--阅读 begin-->
                        <dd class="read_num">
                            <a href="https://blog.csdn.net/valada/article/details/81639661" data-track-click="{&quot;mod&quot;:&quot;popu_459&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/valada/article/details/81639661,none&quot;}">
                                <span class="num">3845</span>
                                <span class="text">阅读</span>
                            </a>
                        </dd>
                        <!--阅读 end-->
                        <!--新增评论数+阅读 begin-->
                        <div class="interval"></div>
                        <dd class="common_num ">
                            <a href="https://blog.csdn.net/valada/article/details/81639661#commentBox" target="_blank" data-track-click="{&quot;mod&quot;:&quot;popu_459&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/valada/article/details/81639661#commentBox,none&quot;}">
                                                                    <span class="num">10</span>                                <span class="text">评论</span>
                            </a>
                        </dd>
                        <!--新增评论数+阅读 end-->
                    </div>
                </dl>               

html源码分析:从代码中可以看到img对应的src地址是直接可访问地址,直接获取地址后就能获取图片。
下面是应用scrapy抓取代码:

#use scrapy shell debug
scrapy shell https://blog.csdn.net/
#get article title and url
response.css("#feedlist_id .clearfix .list_con .title h2 a::text").extract()
response.css("#feedlist_id .clearfix .list_con .title h2 a::attr(href)").extract()
#get the portrait of the author
import scrapy
import re
from scrapy.http import Request
from urllib import parse

post_nodes = response.css("#feedlist_id .clearfix .list_con .list_userbar dt a")    
        for post_node in post_nodes:
            image_url = post_node.css("img::attr(src)").extract_first("")
            post_url = post_node.css("::attr(href)").extract_first("")
            yield Request(url=parse.urljoin(response.url,post_url), meta={"front_image_url":}, callback=self.parse_detail)

在运行时会发现缺少pillow组件需安装,安装如下:

 (py3env) MacBook~/Python/tutorial/MySpider$ pip3 install -i https://pypi.douban.com/simple  pillow
Looking in indexes: https://pypi.douban.com/simple
Collecting pillow
  Downloading https://pypi.doubanio.com/packages/d1/21/bef2816809fac16754e07ed935469fc65f42ced1a94766de7c804179311d/Pillow-5.3.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.6MB)
    100% |████████████████████████████████| 3.6MB 2.2MB/s
Installing collected packages: pillow
Successfully installed pillow-5.3.0
You are using pip version 18.0, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 序言第1章 Scrapy介绍第2章 理解HTML和XPath第3章 爬虫基础第4章 从Scrapy到移动应用第5章...
    SeanCheney阅读 15,152评论 13 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,287评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,929评论 2 59
  • 《忽然就走到了西藏》 陈坤 这本书好华美,从封皮到纸张都是那么的精良,这是华东师范大学出版社出版的,全书只有十七...
    下野巴人阅读 200评论 0 0
  • 健身6次 跑步2次 突然发现今天悦跑圈上累计里程破100KM了~我还是这么做作地保持着对每一个特别一点日子的仪式感...
    Qiao楚的珍珠奶茶没有珍珠阅读 429评论 0 0