ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬虫疑问百解

2022-01-16 21:31:26  阅读:117  来源: 互联网

标签:请求 get 字典 指定 爬虫 JSON 百解 疑问


爬虫简介

什么是爬虫:
    - 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。

http协议
    - 概念:就是服务器和客户端进行数据交互的一种形式。
常用请求头信息
    - User-Agent:请求载体的身份标识
    - Connection:请求完毕后,是断开连接还是保持连接

常用响应头信息
    - Content-Type:服务器响应回客户端的数据类型

https协议:
    - 安全的超文本传输协议

加密方式
    - 对称秘钥加密
    - 非对称秘钥加密
    - 证书秘钥加密

爬虫在使用场景中的分类
    - 通用爬虫:
        抓取系统重要组成部分。抓取的是一整张页面数据。
    - 聚焦爬虫:
        是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
    - 增量式爬虫:
        检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。

requests模块基础

操作流程

  • 指定url
  • UA伪装
  • 请求参数的处理
  • 发起请求
  • 获取响应数据
  • 持久化存储

举个例子:

import requests


def get_sogou():
    #step1 指定URL
    url = 'https://www.sogou.com/'
    #step2 发起请求
    response = requests.get(url=url)
    #step3 获取响应数据,txt返回的是字符串形式的响应数据
    page_txt = response.text
    print(page_txt)
    #step4 持久化存储
    with open('./sogou.html','w',encoding='utf-8') as f:
        f.write(page_txt)
    print('爬虫结束-----')



if  __name__ == '__main__':
    get_sogou()

 requests模块参数都有啥?

Python 提供了 requests 模块用来处理网页的 url,主要有 get() 和 post() 两个方法,分别对应网页的 Get 请求和 Post 请求。get() 和 post() 方法有以下几个参数:

  • url:指定请求 URL;

  • params:字典类型,指定请求参数,GET 请求时使用;

  • data: 字典类型,指定表单信息,常用于发送 POST 请求;

  • headers:字典类型,指定请求头;

  • proxies:字典类型,指定使用的代理;

  • cookies:字典类型,指定 Cookie;

  • auth:元组类型,指定登陆时的账号和密码;

  • verify:布尔类型,指定请求网站时是否需要进行证书验证,默认为 True,表示需要证书验证,假如不希望进行证书验证,则需要设置为 False;

  • timeout:指定超时时间,若超过指定时间没有获得响应,则抛出异常。

  • get() 和 post() 两个方法这两个方法都会返回一个Response对象,其常用的属性和方法列举如下:

 

咱一般都用的json这个是个啥?

 dumps 方法 Python 数据结构转换为 JSON:

 loads 方法

可以将一个 JSON 编码的字符串转换回一个 Python 数据结构,并取指定的值:

 

将字典写入 JSON 文件 、

data.json 是需要保存的文件名名字,dump是用来写入储存数据的,注意区分的是dumps

是将  dumps 方法 Python 数据结构转换为 JSON

 读取文件中的 JSON 数据

 

 因为把json文件弄成的是json类型的当成f所以下载的时候(也就是解析成python数据类型的时候)传入f,也就是变成字典形式        

 

标签:请求,get,字典,指定,爬虫,JSON,百解,疑问
来源: https://blog.csdn.net/weixin_51130521/article/details/122520352

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有