本篇文章主要是爬虫中常用的便捷处理方法整理,转载请注明出处

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Date : 2018-08-14 13:07:06
  4. # @Author : Sheldon (thisisscret@qq.com)
  5. # @blogs : 谢耳朵的派森笔记
  6. # @Link : https://www.cnblogs.com/shld/
  • 请求头headers转换为字典及优雅的字符串

hd_str_fmt方法完全可以用hd_str2dct结合pprint代替,不过其用了sub模板替换的方法,有借鉴意义就保留下来

  1. import re
  2.  
  3. def hd_str_fmt(s:str):
  4. '''把抓包工具的字符串请求头换成字典格式的字符串
  5. param s: 需要转换的请求头字符串
  6. return 格式化的字典字符串
  7. '''
  8. pattern = re.compile(r'^([^^\s]+?)(:)(?:\u0020+|)(\B$|\S[^$]*?$)',flags=re.M)
  9. return '{'+pattern.sub(r"'\1'\2 '\3',", s).strip()+'\n}'
  10.  
  11. def hd_str2dct(s:str):
  12. '''把抓包工具的字符串请求头换成字典
  13. param s: 需要转换的请求头字符串
  14. return 请求头字典
  15. '''
  16. pattern = re.compile(r'^([^^\s]+?):(?:\u0020+|)(\B$|\S[^$]*?$)',flags=re.M)
  17. return dict(pattern.findall(s))
  • cookies增加带有domain等参数的cookie
  1. import requests

  2. '''生成可定制其他参数的cookie
    可以用response.cookies的set_cookie或update方法装载'''

  3. cookie = requests.cookies.create_cookie(name, value, **kwargs)
  • cookies与字典相互转换
  1. import requests
  2. from functools import reduce
  3. from http.cookiejar import Cookie as Ck
  4.  
  5. def cookies2dct(cookies):
  6. """RequestsCookieJar转换成dict"""
  7.  
  8. cookie_list = []
  9. for cookie in iter(cookies):
  10. kw = cookie.__dict__
  11. if '_rest' in kw:
  12. kw['rest'] = kw.pop('_rest')
  13. cookie_list.append(kw)
  14. return {'Cookies': cookie_list}
  15.  
  16. def dct2cookies(dct):
  17. """将上述函数生成的dict转换成RequestsCookieJar"""
  18.  
  19. cookies = requests.cookies.RequestsCookieJar()
  20. reduce(cookies.set,map(lambda kw: Ck(**kw),dct['Cookies']))
  21. return cookies

Python爬虫一些操作headers与cookies的便捷工具的更多相关文章

  1. Python爬虫入门教程 50-100 Python3爬虫爬取VIP视频-Python爬虫6操作

    爬虫背景 原计划继续写一下关于手机APP的爬虫,结果发现夜神模拟器总是卡死,比较懒,不想找原因了,哈哈,所以接着写后面的博客了,从50篇开始要写几篇python爬虫的骚操作,也就是用Python3通过 ...

  2. Python爬虫【四】Scrapy+Cookies池抓取新浪微博

    1.设置ROBOTSTXT_OBEY,由true变为false 2.设置DEFAULT_REQUEST_HEADERS,将其改为request headers 3.根据请求链接,发出第一个请求,设置一 ...

  3. Python爬虫入门教程 51-100 Python3爬虫通过m3u8文件下载ts视频-Python爬虫6操作

    什么是m3u8文件 M3U8文件是指UTF-8编码格式的M3U文件. M3U文件是记录了一个索引纯文本文件, 打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放. ...

  4. python 3.x 爬虫基础---http headers详解

    前言 上一篇文章 python 爬虫入门案例----爬取某站上海租房图片 中有对headers的讲解,可能是对爬虫了解的不够深刻,所以老觉得这是一项特别简单的技术,也可能是简单所以网上对爬虫系统的文档 ...

  5. 小白学 Python 爬虫(10):Session 和 Cookies

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. 小白学 Python 爬虫(18):Requests 进阶操作

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. Python爬虫学习:四、headers和data的获取

    之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.c ...

  8. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  9. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

随机推荐

  1. 【转】.net 经典面试题

    [转].net 经典面试题  1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问.  ...

  2. const的限定

    const对象一旦创建后,其值就不可以改变,所以const对象必须初始化.与非const的类型比较,主要区别在于const类型对象执行但是不改变其操作内容. 在默认状态下,const只在文件内有效.在 ...

  3. VS2010 MFC中 创建文件夹及文件判空的方法

    1. MFC中 创建文件夹的方法如下: CString strFolderPath = "./Output"; //判断路径是否存在 if(!PathIsDirectory(str ...

  4. java编程思想第四版第9章

    练习3: public class MainTest { public static void main(String args[]){ Bcycle b=new Bcycle(); b.print( ...

  5. 2016.11.14 MIT challenge之课程总览

    Degree Chartshttp://catalog.mit.edu/degree-charts/computer-science-engineering-course-6-3/ MIT Chall ...

  6. IntelliJ IDEA启动加速

    IntelliJ IDEA启动加速 学习了:https://blog.csdn.net/xiaosheng_papa/article/details/50378033 需要把插件都不加载就会快一些: ...

  7. 怎样备份Github博客至GitCafe

    原文链接:http://stackvoid.com/how-to-transfer-github-pages-to-gitcafe/ 开通博客半年多了,一直将博客托管到 Github 上,使用 Git ...

  8. kill -signal

    1. SIGHUP 启动被终止的进程,可让该PID重新读取配置文件,类似于重启服务 对应的数字为1 9.SIGTERM 以正常的结束进程来终止进程 15.SIGSTOP 暂停一个进程相当于crtl+z

  9. 【经验】使用Profiler工具分析内存占用情况

    Unity3D为我们提供了一个强大的性能分析工具Profiler.今天我们就使用Profiler来具体分析一下官方样例AngryBots的内存使用信息数据. 首先打开Profiler选择Memory选 ...

  10. ext tree展开时的一些技巧

    加入子节点的时候.我们须要展开父节点.并选中刚加入好的节点. 这时候会有一个问题. 我用的ext-js-4.2起码有一种问题. 节点内部会混乱.要么多加一个. 要么层级会发生故障. 随后我发现一个窍门 ...