爬虫框架Scrapy学习记录II--Selector学习

Selectors (选择器)

  • 当抓取网页时,一般都是从HTML源码中提取数据。
    • BeautifulSoup—网页分析库,缺点慢
    • lxml,基于ElementTree的XML解析库
  • Scrapy 拥有自己一套机制。即为选择器(selectors),通过特定的 XPathCSS 表达式来选择HTML文件中的某个部分

    • XPath 是一门用来在XML文件中选择节点的语言,也可以用在HTML上。 CSS 是一门将HTML文档样式化的语言。选择器由它定义,并与特定的HTML元素的样式相关连。

      • example :
        /html/head/title: 选择HTML文档元素下面的 标签。
        /html/head/title/text(): 选择前面提到的 元素下面的文本内容
        //td: 选择所有 元素
        //div[@class=”mine”]: 选择所有包含 class=”mine” 属性的div 标签元素
      • 路径的意义 :
        nodename : 选取此节点的所有子节点。
        / : 从根节点选取。
        // : 匹配所选择的当前节点来选择文档中的节点,而不考虑它们的位置。
        . : 选取当前节点。
        .. : 选取当前节点的父节点。
        @ : 选取属性。
    • Scrapy 选择器构建于 lxml 库之上,这意味着它们在速度和解析准确性上非常相似。

大量实例:
response.css(‘title’) #选取title元素完整内容
response.css(‘title::text’) #只选取title元素的文本
response.css(‘title::text’).re(r’(\w+) to (\w+)’) #搭配正则选取
response.css(‘img’).xpath(‘@src’).extract() #css和xpath搭配使用 选取img元素中src属性的值

response.xpath(‘//base/@href’).extract() #选取base元素中的href属性
response.css(‘base::attr(href)’).extract() #选取base元素中的href属性
response.css(‘img::attr(src)’).extract() #获得图片的下载地址

response.xpath(‘//a[contains(@href, “image”)]/text()’).re(r’Name:\s*(.*)’) #选取a元素中属性为href 包含image文字的文本

response.css(“span.text::text”).extract_first() #选取span类名字为text的文本

response.css(‘div.tags a.tag::text’).extract() #选取类名字为tags的div元素 下类名字为tag的a元素的文本信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy是一个适用于Python的快速、高层次的屏幕抓取和web抓取框架。它可以用于抓取web站点并从页面中提取结构化的数据。Scrapy的用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy是一个框架,可以根据需求进行定制,并提供了多种类型爬虫的基类,如BaseSpider和sitemap爬虫等。最新版本还提供了对web2.0爬虫的支持。 网络爬虫框架Scrapy还有一些基本模块,包括spiders、items、pipelines和middlewares等。其中,spiders下的jingding.py是Scrapy自动生成的爬虫文件,它继承了scrapy.Spider类,这是Scrapy中最基本的类,所有编写的爬虫都必须继承这个类。在jingding.py文件中,可以定义需要爬取的网站的URL和解析响应的方法等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [爬虫框架 Scrapy 详解](https://blog.csdn.net/m0_67403076/article/details/126081516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [开源python网络爬虫框架Scrapy.pdf](https://download.csdn.net/download/weixin_72426331/85854755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值