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']}

爬虫好搭档之 w3lib相关推荐

  1. Tor网络突破IP封锁,爬虫好搭档【入门手册】

    本文地址:http://www.cnblogs.com/likeli/p/5719230.html 前言 本文不提供任何搭梯子之类的内容,我在这里仅仅讨论网络爬虫遇到的IP封杀,然后使用Tor如何对抗 ...

  2. python爬虫详解(五)——爬取王者荣耀英雄详细、攻略搭配、出装配置、铭文搭配、搭档/压制、入手详情

    今天给大家爬取一个王者荣耀的详情,让大家更好更快了解,说白了,就是想练练手 点个赞留个关注吧!! 今天爬取的内容相对简单,我也不知道难不难,可能对于新手来说会一点难,难就难着吧,不下功夫当然过不了,熬 ...

  3. 爬虫基础之w3lib

    目前在做的项目中遇到一个需求:将爬取到的大量网页中的文本提取出来.由于网页太多,无法逐个分析使用xpath表达式进行提取.使用正则表达式可以实现,但太麻烦.这里介绍一款专业处理这方面问题的包w3lib ...

  4. Python爬虫框架Scrapy安装使用步骤

    一.爬虫框架Scarpy简介 Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Pytho ...

  5. python scrapy 入门,10分钟完成一个爬虫

    在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...

  6. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  7. Scrapy爬虫及案例剖析

    来自:ytao 由于互联网的极速发展,所有现在的信息处于大量堆积的状态,我们既要向外界获取大量数据,又要在大量数据中过滤无用的数据.针对我们有益的数据需要我们进行指定抓取,从而出现了现在的爬虫技术,通 ...

  8. Python分布式爬虫-elasticsearch搭建搜索引擎

    Python分布式爬虫-elasticsearch搭建搜索引擎 一.elasticsearch使用 1.elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它 ...

  9. python爬虫scrapy步骤mac系统_Mac中Python 3环境下安装scrapy的方法教程

    前言 最近抽空想学习一下python的爬虫框架scrapy,在mac下安装的时候遇到了问题,逐一解决了问题,分享一下,话不多说了,来一起看看详细的介绍吧. 步骤如下: # 在Mac上Python3环境 ...

最新文章

  1. javascript --- 瀑布流的实现
  2. 「Azure」数据分析师有理由爱Azure之二-立即申请帐号开始学习之旅
  3. Python以字符形式打印双色图片中的文字
  4. java零碎要点010---Java实现office文档与pdf文档的在线预览功能
  5. 【Go】优雅的读取http请求或响应的数据-续
  6. 如何在EDUIS中导出ETL字幕模板_给视频加字幕?这8个工具助力你的短视频创作!...
  7. 仿照小米官网项目具体操作与细节
  8. 电机正反转c语言注释,直流电机正反转C程序.doc
  9. 计算机主机不启动但 主机闪,电脑主机电源灯闪烁无法启动不了
  10. 【Kaldi例子】Librispeech数据整理
  11. 打开IE浏览器页面默认为标准模式的方法
  12. 自用-jupyter启动和快捷键
  13. 【Java学习之代码学习】 Prog28_打印出杨辉三角形的问题
  14. 如何解决Vray for 3ds Max中的3个错误
  15. 用计算机时的注意事项,计算机使用注意事项
  16. Hive SQL 计算指定日期本周的第一天和最后一天
  17. RabbitMQ学习笔记
  18. 兆鹏带你读watir——【第五篇】watir的js应用(技巧篇)
  19. maven打包三种方式
  20. from用法 prepare_单词与短语 知识讲解 prepare,prepare for,be prepared for,be prepared from的区别...

热门文章

  1. 发外链还有用吗?2020外链怎么发才能真正提升网站排名?
  2. Mob短信验证码登录(Android)
  3. CSS字体图标的生成和使用
  4. 没有量角器怎么办?手机也能轻松解决
  5. Java项目-表白墙(前后端分离+数据库)已开源
  6. 正则表达式是向前向后查找的使用
  7. php图片怎么向上,php图片水印
  8. Dart 内存管理机制
  9. html情侣相册,情侣相册教程-会声会影中文官网
  10. Java架构直通车——锁分段技术:微信如何扛住 10 亿用户同时修改微信号?