美文网首页
碎知识整理

碎知识整理

作者: 玩阿轲睡妲己 | 来源:发表于2017-12-14 10:40 被阅读0次

去掉内容中html标签

re.sub(r'<[^>]+>','',content)

  • 替换某字符
    re.sub('Hello','Hi',content) 或 content.replace('Hello','Hi')

xpath

  • 获取某标签下所有的内容
    1, response.xpath('//*[@id="Results"]/string(.)')
    2,print(x.xpath('string(div[2]/a)'))
  • 获取某块标签下所有含id属性的li标签
    sel.xpath('//*[@id="Results"]//li[@id]')
  • 获取<a>标签的 href 属性
    sel.xpath('/html/body/div/div[2]/a/@href').extract()[0]

中文乱码问题

0,

text = response.content.decode('utf-8')

1, python 的 chardet库这是“猜测”编码,猜测的方式是先收集各种编码的特征字符,根据特征字符判断,就能有很大概率“猜对”。

import chardet
print(chardet.detect(response.content)['encoding'])

2, requests 属性

self.response = response.content.decode(response.encoding) #一般是从response.headers中content-type字段中的charset的值
(推荐) self.response = response.content.decode(response.apparent_encoding)  #   一般是采用上述的 python 的 chardet库这种方法

3, 如果上述两个方式不能解决,那有可能是网页的压缩导致的。检查头信息是不是包含了Accept-Encoding这个字段,如果有,请删除这个字段

    headers = {
        'Accept-Encoding': 'gzip, deflate, sdch',
        'Accept-Language': 'zh-CN,zh;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Connection': 'keep-alive',
    }

Pthon类方法

  • __call__()
class Foo(object): 
  def __call__(self,name): 
    print "hello",name
  
f = Foo()
f('Alice')#使类实例f可call 

输出:
hello Alice

爬虫cookie保存

scrapy使用中间件保持cookie,一个爬虫的多个cookie保存在cookiejar中,使用meta传递使用的标识符。(大街网的cookie有有效期,可以测试使用!)
供参考文章:
http://python.jobbole.com/88478/?utm_source=blog.jobbole.com&utm_medium=relatedPosts
scrapy官方:https://doc.scrapy.org/en/0.24/topics/downloader-middleware.html?highlight=cookie#std:reqmeta-cookiejar

系列文章:http://python.jobbole.com/category/guide/

相关文章

  • 碎知识整理

    去掉内容中html标签 re.sub(r'<[^>]+>','',content) 替换某字符re.sub('He...

  • Angular 零碎知识整理合集

    我司前端开发的框架是Angular,将日常工作当中用到的Angular零碎知识整理:Angular 零碎知识整理(...

  • 零碎知识整理

    2017年01月04日00:20:21 1Byte = 8 Bit(s) ;1Bit是一位 0 / 1 siz...

  • 提问,带着问题去学习

    日日更,碎碎念。 第173天 001 今天听完了一套笔记侠创始人的知识整理课。 嗯,他说的是整理,而非管理。(这不...

  • iOS零碎知识整理

    CGFloat与float的区别 查看CGFloat的定义就会发现 不难发现CGFloat其实是double与fl...

  • CSS零碎知识整理

    布局 1. 三列布局,左右侧栏固定300px,三列高度统一给定,中间自适应 此简单问题,答上三种及格,答上五种优秀...

  • 关于JMeter的知识卡片(持续更新)

    知识卡片的作用是把零碎的知识点进行归纳和整理,话说简书敢不敢做一个知识卡片的markdown,或者开发一个知识卡片...

  • Angular 零碎知识整理(一)

    routing-strategieshttps://codecraft.tv/courses/angular/ro...

  • Angular 零碎知识整理(二)

    _nghost and _ngcontentUpon application startup (or at bui...

  • 零碎知识点整理

    sofa结构体系:多模块 sofa中使用sofa线程池 Java 线程池的使用非常广泛,目前有两类广泛使用的线程池...

网友评论

      本文标题:碎知识整理

      本文链接:https://www.haomeiwen.com/subject/hebhwxtx.html