爬虫好搭档之 w3lib

news/2024/9/18 1:31:58/

time: 2018/04/10

w3lib 是scrapy的基础插件,用来处理html,灰常的好用,清理文本带有HTML标签的数据;

官方文档

  1. w3lib.encoding.html_body_declared_encoding(html_body_str) 作用是返回网页的编码,如果网页有<meta charset=utf-8>就会返回utf-8
  2. w3lib.encoding.http_content_type_encoding 返回htt头里面的编码格式
>>> import w3lib.encoding    >>>w3lib.encoding.http_content_type_encoding("Content-Type: text/html; charset=ISO-8859-4")  'iso8859-4'

3.w3lib.encoding.read_bom(data)
返回 BOM的编码

>>> import w3lib.encoding
>>> w3lib.encoding.read_bom(b'\xfe\xff\x6c\x34')
('utf-16-be', '\xfe\xff')
>>> w3lib.encoding.read_bom(b'\xff\xfe\x34\x6c')
('utf-16-le', '\xff\xfe')>>>w3lib.encoding.read_bom(b'\x00\x00\xfe\xff\x00\x00\x6c\x34')('utf-32-be', '\x00\x00\xfe\xff')
>>>w3lib.encoding.read_bom(b'\xff\xfe\x00\x00\x34\x6c\x00\x00')('utf-32-le', '\xff\xfe\x00\x00')
>>> w3lib.encoding.read_bom(b'\x01\x02\x03\x04')(None, None)

4.w3lib.encoding.to_unicode(data_str, encoding)
返回unicode编码
5.w3lib.html.remove_comments(text, encoding=None)
去除注释:

    >>> import w3lib.html>>> w3lib.html.remove_comments(b"test <!--textcoment--> whatever")u'test  whatever'>>>

6.w3lib.html.remove_tags(text, which_ones=(), keep=(), encoding=None)
去除标签,获取标签的text:

    >>> import w3lib.html>>> doc = '<div><p><b>This is a link:</b> <a href="http://www.example.com">example</a></p></div>'>>> w3lib.html.remove_tags(doc)u'This is a link: example'>>>
1.保留需要的标签:
>>> w3lib.html.remove_tags(doc, keep=('div',))
u'<div>This is a link: example</div>'
>>>
2. 选择去除的标签:
>>> w3lib.html.remove_tags(doc, which_ones=('a','b'))
u'<div><p>This is a link: example</p></div>'
>>>3. 注意不能即保留又删除标签;
>>> w3lib.html.remove_tags(doc, which_ones=('a',), keep=('p',))
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/local/lib/python2.7/dist-packages/w3lib/html.py", line 101, in remove_tagsassert not (which_ones and keep), 'which_ones and keep can not be given at the same time'
AssertionError: which_ones and keep can not be given at the same time
>>>

7.w3lib.html.remove_tags_with_content(text,which_ones=(), encoding=None)
删除标签并把标签的内容删掉;

    >>> import w3lib.html>>> doc = '<div><p><b>This is a link:</b> <a href="http://www.example.com">example</a></p></div>'>>> w3lib.html.remove_tags_with_content(doc, which_ones=('b',))u'<div><p> <a href="http://www.example.com">example</a></p></div>'>>>

8.w3lib.html.replace_entities(text, keep=(), remove_illegal=True, encoding='utf-8')

    >>> import w3lib.html>>> w3lib.html.replace_entities(b'Price: &pound;100')u'Price: \xa3100'>>> print(w3lib.html.replace_entities(b'Price: &pound;100'))Price: £100>>>

9.w3lib.html.replace_tags(text, token='', encoding=None)
替换标签为XXX

    >>> import w3lib.html>>> w3lib.html.replace_tags(u'This text contains <a>some tag</a>')u'This text contains some tag'>>> w3lib.html.replace_tags('<p>Je ne parle pas <b>fran\xe7ais</b></p>', ' -- ', 'latin-1')u' -- Je ne parle pas  -- fran\xe7ais --  -- '>>>

10.w3lib.http.headers_raw_to_dict(headers_raw)
原始头转换成字典:

    >>> import w3lib.http>>> w3lib.http.headers_raw_to_dict(b"Content-type: text/html\n\rAccept: gzip\n\n")   {'Content-type': ['text/html'], 'Accept': ['gzip']}

http://www.ppmy.cn/news/637726.html

相关文章

w3school和w3cschool两个网站有什么关系和区别?

w3school地址&#xff1a;http://www.w3school.com.cn/ w3cschool地址&#xff1a;https://www.w3cschool.cn 其中w3cschool是应w3c中国组织官方而出的&#xff0c;而w3school是上海赢科投资有限公司进行投资的&#xff0c;但是是为了协助w3c中国组织而出的重点大家应该也看出…

W3C标准详解

W3C标准详解 w3c&#xff08;即万维网联盟 World Wide Web Consortium&#xff09;标准不是一个标准&#xff0c;而是一系列标准的集合。 网页主要有三部分组成结构&#xff08;Structrue&#xff09;&#xff0c;表现&#xff08;Presentation&#xff09;&#xff0c;行为(B…

w3c标准html,W3C标准及规范

1、DOCTYPE(document type)文档类型 用于说明你的XHTML或HTML是什么版本,其中的DTD为文档类型定义,里面包含了文档的规则,浏览器通过你定义的DTD来解释你页面的标识并展现出来,DOCTYPE是必不可少的关键组成部分,除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都…

服务器中W3SVC1文件夹的文件,c:\winnt\system32\logfiles\w3svc1\ 文件夹下面到底是记录什么样的文件,可以删除吗?...

c:\winnt\system32\logfiles\w3svc1\ 文件夹下面到底是记录什么样的文件&#xff0c;可以删除吗&#xff1f; 來源:互聯網 2010-05-04 21:11:00 評論 分類: 電腦/網絡 >> 操作系統/系統故障 問題描述: c:\winnt\system32\logfiles\w3svc1\ 文件夹下面到底是记录什么样的…

mysql中distinct是什么_数据库中 DISTINCT 的作用是什么?

展开全部 SQL数据库中&#xff0c; DISTINCT表示去掉重复的行&#xff0c;作用是针对包含重复值的数据表&#xff0c;用于返回唯一不同的值。语法是636f70793231313335323631343130323136353331333433623731SELECT DISTINCT 列名称 FROM 表名称。如果指定了 SELECT DISTINCT&am…

W3C标准包括什么?

W3C标准包括 结构化标准语言&#xff08;HTML、XML&#xff09; 表现标准语言&#xff08;CSS&#xff09; 行为标准&#xff08;DOM、ECMAScript&#xff09;

什么是W3C,相关标准是什么?

简述web与w3c标准的认识 web可以简单分为&#xff1a;结构、表现、行为。三部分独立开来使其模块化 w3c是对web做出规范&#xff0c;使代码更严谨&#xff0c;做出来的网页更易使用&#xff0c;维护。 w3c做出的规范可分为如下&#xff1a; 结构上&#xff1a;&#xff08;…

三星i9305水货手机鉴别方法

最近有机油问我三星i9305和韩版的i9300内存都是2G 这款手机怎么样&#xff0c;是韩版改的吗&#xff1f;会不会买到韩版改欧版的机器呢&#xff1f;下面给机友们说一下简单的鉴别方法。 三星i9305支持国外4G网络&#xff0c;2GRAM后盖有LTE的4g网络标识&#xff0c;韩版的i9300…

vue3中,通过路由传参的几种形式

1.query传参 // 在路由信息中&#xff0c;path需要配置如下内容 {path: "/test",component: () > import("/views/text/index.vue"),name: "Test",meta: {title: "测试模块",}, }// 组件1中传参给组件2// 组件1 const query { id…

三星否认在澳大利亚与苹果接近达成和解协议

北京时间 10 月 4 日消息&#xff0c;据国外媒体报道&#xff0c;三星电子周一表示&#xff0c;该公司并未与苹果在澳大利亚就平板电脑专利纠纷接近达成和解协议。 上周曾有报道称&#xff0c;三星电子委托律师已经向苹果提出了和解相关协议&#xff0c;好让旗下 Galaxy Tab 10…

不仅国产手机被撕下遮羞布,其实苹果和三星也已没了遮羞布

遮羞布可谓是被用烂的词&#xff0c;其实近期的诸多数据显示不仅是国产手机没了遮羞布&#xff0c;苹果和三星也被撕下了遮羞布&#xff0c;在全球手机市场变成如此模样的情况下&#xff0c;谁都没能逃过。 国产手机的遮羞布就是它们的高端化都是自欺欺人&#xff0c;国产手机一…

SN CSP-S2迷惑行为大赏

概述 本次CSP共有455位选手参加&#xff0c;有效文件夹有391个&#xff0c;理论.cpp数量391*31565个&#xff0c;实际.cpp数量1972&#xff0c;include数量2472&#xff08;如图&#xff09; 免责声明 本文出现的所有内容均为公开的比赛代码&#xff0c;如您感到不妥请私信作…

SWC介绍

SWC介绍 我们来看一下swc的官方介绍: SWC (stands for Speedy Web Compiler) is a super-fast TypeScript / JavaScript compiler written in Rust.swc的出现其实很大一部分原因是要替换掉工程中的babel&#xff0c;所以babel有的功能他几乎都有。 与babel最大的区别可能就是…

全文剧透:Come And See |《最后的生还者2》

昨天&#xff0c;当我望着艾莉那双映在电视机屏幕上的布满恐惧与愤怒的眸子时&#xff0c;思绪无法遏制地回到了我把一张表皮印着中年男人和小女孩的光碟从印刷极其简陋的封面纸中抽出&#xff0c;剥开塑料膜并放入PS3主机的七年前的遥远午后。但当我的眼泪随着艾莉不协调的断指…

终结者外传第二季大结局剧情及评论

从现实情况来看&#xff0c;本集有90&#xff05;的可能性是全剧最后一集&#xff08;第三季希望渺茫&#xff09;&#xff0c;可剧组不但没有解答剧中最关键的几个悬疑之处&#xff0c;反而增加了一大堆让人觉得匪夷所思的线索。本集开始出演员表的时候&#xff0c;扮演Derek的…

三星 0E 门序列号批次汇总 (Samsung SSD 0E Issue with affected SN)

开头 S6 是高危大家应该都知道了&#xff0c;但我还是想尽可能更精确地确定大概的批次范围&#xff0c;所以就有了以下不完全统计太长不看&#xff1a;以下为各型号存在已知中招案例的序列号开头&#xff0c;多集中在写入量 < 15T 发生&#xff0c;整体集中于 21 年全年 &am…

快速入门微信小程序

文章目录 快速入门微信小程序1、微信小程序的注册1.1 注册账户1.2 激活1.3 登记信息1.4 下载微信开发工具1.5 使用微信开发工具创建一个小程序 2、导入官方的Demo2.1 下载官方Demo2.2 导入官方Demo2.3 运行官方Demo 3、编写自己的Demo3.1 创建微信小程序3.2 微信小程序常见参数…

从数字图像到音视频学习:我的学习之旅

数字图像是一门广泛应用于计算机视觉、图像处理和计算机图形学等领域的学科&#xff0c;而音视频学习则涵盖了音频和视频的处理、分析和应用。 如果你最开始接触数字图像&#xff0c;可能会学习一些基本概念&#xff0c;例如像素、分辨率、色彩空间和图像处理算法等。这可能涉…

错过一个订单后,吐槽下自己(顺便分享下书单),剧终版

事先啰嗦几句 1、 纯叙述分享&#xff0c;分享一点创业过程的经历。也当挖坟自我重新认识&#xff08;大概就是把以前的经历又翻出来的意思&#xff09;。 2、 前面叙述有“摇尾乞怜”之嫌&#xff0c;所以采用分段叙述的方式&#xff0c;只想看创业分享的直接往下拉。 3、 故意…

【项目功能模块】商城秒杀模块

实现商城秒杀功能模块涉及多个技术栈&#xff0c;包括Spring Boot、Vue.js、Redis、ActiveMQ和MySQL 由于代码实现较为复杂&#xff0c;无法在单个回答中完整展示所有代码和注释。以下是一个基本的示例架构和代码结构&#xff0c;以帮助你理解如何集成这些技术来实现商城秒杀功…