爬虫好搭档之 w3lib

news/2024/11/9 0:46:09/

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…