热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:爬虫复习

本文由编程笔记#小编为大家整理,主要介绍了爬虫复习相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了爬虫复习相关的知识,希望对你有一定的参考价值。

不想误导,若有错误,希望各位不吝指教!!


代理:proxies参数


格式:


1 proxies = {
2 "http": "http://12.34.56.79:9527",
3 "https": "http://12.34.56.79:9527",
4 }


私密代理:


1 # 如果代理需要使用HTTP Basic Auth,可以使用下面这种格式:
2 proxy = { "http": "xx:xx@xx:xx" }
3 proxy = { "http": "mr_mao_hacker:sffqry9r@61.158.163.130:16816" }


拿COOKIEs参数:


原理:


COOKIE名字(Name)
COOKIE的值(Value)
COOKIE的过期时间(Expires
/Max-Age)
COOKIE作用路径(Path)
COOKIE所在域名(Domain),
使用COOKIE进行安全连接(Secure)。
?
前两个参数是COOKIE应用的必要条件,另外,还包括COOKIE大小(Size,不同浏览器对COOKIE个数及大小限制是有差异的)。

 

格式:


1 # 7. 返回COOKIEJar对象:
2 COOKIEjar = response.COOKIEs
3 ?
4 # 8. 将COOKIEJar转为字典:
5 COOKIEdict = requests.utils.dict_from_COOKIEjar(COOKIEjar)


session:


1 requests.session()
2 # 4. 发送附带用户名和密码的请求,并获取登录后的COOKIE值,保存在ssion里
3 ssion.post("http://www.renren.com/PLogin.do", data = data)
4 ?
5 # 5. ssion包含用户登录后的COOKIE值,可以直接访问那些登录后才可以访问的页面
6 respOnse= ssion.get("http://www.renren.com/410043129/profile")


处理HTTPS请求 SSL证书验证:


如果SSL证书验证不通过,或者不信任服务器的安全证书,则会报出SSLError

跳过 12306 的证书验证,把 verify 设置为 False 就可以正常请求了

1 1.r = requests.get("https://www.12306.cn/mormhweb/", verify = False)
2 2.
3 # 1. 导入Python SSL处理模块
4 import ssl
5 ?
6 # 2. 表示忽略未经核实的SSL证书认证
7 cOntext= ssl._create_unverified_context()
8 r = requests.get("https://www.12306.cn/mormhweb/", cOntext= context)


随机/添加获取User-Agent:


1 #也可以通过调用Request.add_header() 添加/修改一个特定的header
2 request.add_header("Connection", "keep-alive")
3 ?
4 ?
5 ua_list = [
6 "Mozilla/5.0 (Windows NT 6.1; ) Apple.... ",
7 "Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ",
8 "Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",
9 "Mozilla/5.0 (Macintosh; Intel Mac OS... "
10 ]
11 ?
12 user_agent = random.choice(ua_list)
13 其他:


1.Handler处理器 和 自定义Opener


2.ProxyHandler处理器(代理设置)


3.COOKIEjar库 和 HTTPCOOKIEProcessor处理器


推荐阅读
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
author-avatar
大市低开_127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有