• 网络爬虫基础知识(Python实现)


    浏览器的请求

    url=请求协议(http/https)+网站域名+资源路径+参数

    http:超文本传输协议(以明文的形式进行传输),传输效率高,但不安全。

     https:由http+ssl(安全套接子层)组成;传输之前数据先加密,之后解密获取内容,传输效率低但安全。

    HTTP协议之请求

    1请求行

    2.请求头(user-Agent:用户代理【对方服务器通过user-Agent知道当前请求资源的是神么网站】)

    3.请求体(get 请求没有请求体,post有;get 请求把数据放在url地址中)

    post请求常用于登入,注册以及传输大文本时

    HTTP协议之响应

    1.响应头(set cookie:对方服务通过该字段设置cookie的值到本地)

    2.响应体(url地址对应的响应内容)

    网络爬虫的逻辑

    1.确定起始url

    2.发送请求获取响应

    3.提取数据

    4.保存

    5构造下一个url 地址,循环2-5步。(使用retrying,当请求不成功时,重复进行请求)

    response.request.url:得到的是发送请求url地址

    response.url是resonse响应的url地址

    发送get post 请求获取响应;

    url="https://i.cnblogs.com"

    headers={

    }

    response=request.get(url,headers=headers)

    response=request.post(url,headers=headers,data={请求体字典【键值对格式】})

     获取网页源码内容 的方法;(依次使用三种方式一定可以获取网页的正确内容,当前面一种方式不能获取到时,改用下一种

    1)response.content.decode()//把响应的二进制字节流转化为str 类型.默认使用的是utf-8编码

    2)response.content.decode("gbk")用指定的编码进行编码

    3)response.text  浏览器会以自己猜测的编码形式进行编码

    处理cookie相关请求的方法

    1)直接放在headers中

    2)把cookie放在字典中

    3)先发送post请求,带上cookie请求登入

    session=request.session()// 实例化session对象

    session.post(url,data,headers)// 获取对方保存在本地的cookie内容

    session.get(url)  //session会自动带上cookie

    数据提取的方法:

    json.loads  作用:把json字符串转化为python类型

    json.dumps 把python类型转化为json字符串

    ensure_ascill 能让页面中的中文字符正确显示为中文

    indent: 能够让下一行显示时在下一行的基础上显示空格

    xpath:一门从html中提取数据的语言

    xpath语法:

    1.选择节点(标签)/html/head/meta 表示选中head下的 所有meta标签

    2.//双斜线 能够从任一节点开始选择

    ./a 表示当前节点下的a 标签

    3.@的用途

    @的作用是取某个节点属性的值

    例如://div[@class='box1']/

    4.获取文本

    /a/text()   表示获取a标签的文本

    /a//text()   表示获取a标签下的所有文本(可能不是直接在a标签下)

  • 相关阅读:
    Python入门_绘制多个五角形_turtle
    Selenium3+python自动化6-八种元素元素定位(Firebug和firepath)
    MongoDB入门(3)- MongoDB备份与恢复
    MongoDB入门(2)- MongoDB安装
    MongoDB入门(1)- MongoDB简介
    Elastic Search操作入门
    应用Xml.Linq读xml文件
    Struts2入门(1)-第一个Struts2程序
    Hibernate入门(4)- Hibernate数据操作
    Hibernate入门(3)- 持久对象的生命周期介绍
  • 原文地址:https://www.cnblogs.com/zyt-bg/p/9325757.html
Copyright © 2020-2023  润新知