当前位置: 首页 > news >正文

python爬虫笔记-day1

判断请求否是成功


assert response.status_code==200

url编码

https://×××w.baidu.com/s?wd=%E4%BC%A0%E6%99%BA%E6%92%AD%E5%AE%A2

字符串格式化的另一种方式

"传{}智播客".format(1)

使用代理ip
准备一堆的ip地址,组成ip池,随机选择一个ip来时用
如何随机选择代理ip,让使用次数较少的ip地址有更大的可能性被用到

{"ip":ip,"times":0}
[{},{},{},{},{}],对这个ip的列表进行排序,按照使用次数进行排序
选择使用次数较少的10个ip,从中随机选择一个

检查ip的可用性

可以使用requests添加超时参数,判断ip地址的质量
在线代理ip质量检测的网站

携带cookie请求
携带一堆cookie进行请求,把cookie组成cookie池

使用requests提供的session类来请求登陆之后的网站的思路
实例化session
先使用session发送请求,登录对网站,把cookie保存在session中
再使用session请求登陆之后才能访问的网站,session能够自动的携带登录成功时保存在其中的cookie,进行请求

不发送post请求,使用cookie获取登录后的页面
cookie过期时间很长的网站
在cookie过期之前能够拿到所有的数据,比较麻烦
配合其他程序一起使用,其他程序专门获取cookie,当前程序专门请求页面

字典推导式,列表推到是

cookies="anonymid=j3jxk555-nrn0wh; _r01_=1; _ga=GA1.2.1274811859.1497951251; _de=BF09EE3A28DED52E6B65F6A4705D973F1383380866D39FF5; ln_uact=mr_mao_hacker@163.com; depovince=BJ; jebecookies=54f5d0fd-9299-4bb4-801c-eefa4fd3012b|||||; JSESSIONID=abcI6TfWH4N4t_aWJnvdw; ick_login=4be198ce-1f9c-4eab-971d-48abfda70a50; p=0cbee3304bce1ede82a56e901916d0949; first_login_flag=1; ln_hurl=http://hdn.xnimg.cn/photos/hdn421/20171230/1635/main_JQzq_ae7b0000a8791986.jpg; t=79bdd322e760beae79c0b511b8c92a6b9; societyguester=79bdd322e760beae79c0b511b8c92a6b9; id=327550029; xnsid=2ac9a5d8; loginfrom=syshome; ch_id=10016; wp_fold=0"
cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}

[self.url_temp.format(i * 50) for i in range(1000)]

获取登录后的页面的三种方式
实例化session,使用session发送post请求,在使用他获取登陆后的页面
headers中添加cookie键,值为cookie字符串
在请求方法中添加cookies参数,接收字典形式的cookie。字典形式的cookie中的键是cookie的name对应的值,值是cookie的value对应的值

转载于:https://blog.51cto.com/13517854/2321197

相关文章:

  • 简便安装mysql数据库的方法
  • Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客
  • Android 性能优化的方面方面都在这儿
  • 通过几道题目学习二叉搜索树
  • 设计模式 开闭原则
  • 一个真正有能力的人
  • Mybatis-plus之RowBounds实现分页查询
  • clover无缘无故隐藏书签栏原因
  • Vue 路由切换时页面内容没有重新加载
  • 303. Range Sum Query - Immutable
  • 从“被动挖光缆”到“主动剪网线”,蚂蚁金服异地多活的微服务体系
  • 冲刺第四天 11.28 WED
  • Spark 用户自定义函数 Java 示例
  • jQuery焦点图插件
  • Go之路
  • .pyc 想到的一些问题
  • CAP 一致性协议及应用解析
  • Js基础知识(四) - js运行原理与机制
  • Laravel 实践之路: 数据库迁移与数据填充
  • nodejs实现webservice问题总结
  • PermissionScope Swift4 兼容问题
  • SQLServer插入数据
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue2.0项目引入element-ui
  • vue-router的history模式发布配置
  • Vue组件定义
  • windows-nginx-https-本地配置
  • windows下mongoDB的环境配置
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​queue --- 一个同步的队列类​
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #pragma once与条件编译
  • (10)STL算法之搜索(二) 二分查找
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Git) gitignore基础使用
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (python)数据结构---字典
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转)linux 命令大全
  • ***测试-HTTP方法
  • .htaccess配置重写url引擎
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • @Bean有哪些属性
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @Transaction注解失效的几种场景(附有示例代码)
  • [AIGC] MySQL存储引擎详解
  • [CISCN 2023 初赛]go_session
  • [CQOI 2011]动态逆序对
  • [Git 1]基本操作与协同开发