<爬虫>相关的知识
1.概念、工具和HTTP
- 什么是爬虫
- 模拟客户端发送网络请求,获取响应,按照规则提取数据
- 爬虫的数据去哪了
- 展示到网页上(百度新闻,今日头条)
- 进行分析,从数据中寻找规律(指数网站:百度指数)
- 需要的软件和环境
- python3
- pycharm编辑器
- chrome浏览器-分析网络请求
- 浏览器的请求
- url:检查→network
- 浏览器请求url地址
- 爬虫请求url地址
- HTTP和HTTPS
- 超文本传输协议:客户端和服务端约定
- HTTPS:HTTP+SSL(安全套接字层)--更安全一点
- HTTP协议之请求
- 请求行
- 请求头
- USER-AGENT:服务器据此判断访问的是什么浏览器,
- Cookie:用来存储用户信息,每次请求会携带上发送给对方
- 请求体
- get:没有请求体,把数据放在url中
- post:登录注册,可以携带比get多很多的信息
2.requests模块的学习
- 安装
- pip install requests
- 发送get,post请求,获取响应
- response = requests.get(url)
- response = requests.post(url,data={请求体的字典})
- ②response.text:如果出现乱码,在前面加一行response.encoding = "utf-8"
- ①response.content.decode("utf-8") -----解码或者改成gbk解码
- 发送带header的请求
- headers = {"User-Agent":"xxx","Referer":"xxx",}
- response = requests.post(url,data={请求体的字典},headers= headers)
- response = requests.get(url,headers= headers)
- response.request.url
- response.request.headers
- response = requests.post(url,data={请求体的字典},headers= headers,timeout=3)---需要加异常捕获
- retrying模块学习----重试
- pip install retrying----安装
- from retrying import retry
- @retry(stop_max_attempt_number=3)-------装饰器,执行几次
- cookie相关的请求
- cookie放在headers里面
- cookie存成字典,用requests.get(url,cookies=cookie_dict)
- session = requests.session()
- session.post(url,data,headers)
- session.get(url,headers)
先发送post请求,获取cookie,带上cookie请求页面(会话维持 )
3.数据的提取方法
- json--数据交换格式
- import json
- json.loads(json字符串):json转str
- json.dumps(python字典):str转json字符串(文件写入)
- json.dumps(ret,ensure_ascII=False):数据直接显示中文,不再以ASCII码方式显示
- 主要逻辑
- start_url
- 发送请求,获得响应
- 提取数据
- 保存
- 构造下一页url地址,循环2-5步
- Xpath:提取数据
- /html/a:选择标签
- //:任意节点开始
- //div[@class="xxx"]:选择某个值
- a/@class:选择class的值
- a/text():获取a下的文本
- a//text():获取a下的所有文本
- lxml
- pip install lxml
- from lxml import etree
- element = etree.HTML("html字符串")
- element.xpath("")
<爬虫>相关的知识的更多相关文章
- .NET同步与异步之相关背景知识(六)
在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中web相关的知识(概述)
Spring Framework中web相关的知识 1.概述: 参考资料:官网documentation中第22小节内容 关于spring web mvc: spring framework中拥有自 ...
- iOS蓝牙开发(二)蓝牙相关基础知识
原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ====== ...
- 【Python爬虫】入门知识
爬虫基本知识 这阵子需要用爬虫做点事情,于是系统的学习了一下python爬虫,觉得还挺有意思的,比我想象中的能干更多的事情,这里记录下学习的经历. 网上有关爬虫的资料特别多,写的都挺复杂的,我这里不打 ...
- iOS网络相关零散知识总结
iOS网络相关零散知识总结 1. URL和HTTP知识 (1) URL的全称是Uniform Resource Locator(统一资源定位符). URL的基本格式 = 协议://主机地址/路径 ...
- 深入理解mysql之BDB系列(1)---BDB相关基础知识
深入理解mysql之BDB系列(1) ---BDB相关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的,包括五个子系统(见图1.1 ...
- 【RAC】RAC相关基础知识
[RAC]RAC相关基础知识 1.CRS简介 从Oracle 10G开始,oracle引进一套完整的集群管理解决方案—-Cluster-Ready Services,它包括集群连通性.消息和锁. ...
- Linux实战教学笔记19:Linux相关网络知识梳理
第十九节 Linux相关网络知识梳理 标签(空格分隔): Linux实战教学笔记-陈思齐 一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工 ...
- Mac os 下 python爬虫相关的库和软件的安装
由于最近正在放暑假,所以就自己开始学习python中有关爬虫的技术,因为发现其中需要安装许多库与软件所以就在这里记录一下以避免大家在安装时遇到一些不必要的坑. 一. 相关软件的安装: 1. h ...
随机推荐
- shell 删除除匹配字符串之外的所有文件夹
file_dir=` -maxdepth - type d`for dir in $file_dirdo file_name=`basename $dir` if [ $file_name != &q ...
- GNU Linux 64汇编学习
函数调用传参: 第一个参数:rdi, 第二个参数:rsi 函数调用栈结构: 返回值 第一个参数 第二个参数 +----------+ rsp-24 | a | +----------+ rsp-16 ...
- 微信小程序 获取用户信息并保存登录状态
微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml
- mysql 5.7.20 动态sql 传入参数
drop procedure test; delimiter ;; CREATE procedure test() -- 取动态sql的值 -- 目前只测试出,在 where 后面, 可以用 ?,类似 ...
- 【Java】Java字符串转码
最近在开发项目中,偶尔遇到从页面上传到后台的中文数据,老是出现乱码的情况,但是对这个转码的过程又记不住,故此在此备份一下,希望对朋友们也有所帮助: String title=request.getPa ...
- html 中手写阴影弹窗框封装
// 弹出提示框 function popup(pWidth,content) { $("#msg").remove(); var html ='<div id=" ...
- phpstorm提示phalcon语法
先安装phalcon,将phalcon的扩展php_phalcon.dll添加到PHP的ext目录下,这个不做赘述,网上教程很多 下面直接安装phalcon-devtools, 1,分别下载phalc ...
- 微信小程序の微信js
一.Javascript简介 二.nodejs中的jscript nodejs表示谷歌基于v8引擎的一门后端语言, ECMA表示ECMA262标准的基本js,native表示nodejs本身的一些包, ...
- dubbo-源码阅读之服务订阅
配置例子 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
- jeesite框架常用插件
1.分页: <div class="pagination">${page }</div> 2.日历:onclick="WdatePicker({d ...