爬虫Day01

http协议

  • 概念: 就是服务器和客户端进行数据交互的一种形式

常用请求头信息

  • User-Agent : 请求载体的身份标识
  • Connection : 请求完毕后,是断开连接还是保持连接

常用响应头信息

  • Content-Type : 服务器响应回客户端的数据类型

https协议

  • 安全的超文本传输协议

数据加密方式

  • 对称密钥加密
  • 非对称密钥加密
  • 证书密钥加密

第一滴血

  • requests模块:python中的原生的一款基于网络请求的模块,功能强大,简单便捷,效率极高

作用

模拟浏览器发请求

使用

  • 指定url
  • 发起请求
  • 获取响应数据
  • 持久化存储

编码

import requests
if __name__ == '__main__':
    url = 'https://www.sogou.com/' # 指定url
    response = requests.get(url=url)   #发起请求
    # 响应数据
    page_text = response.text
    # 持久化存储
    with open('./sogou.html','w',encoding='utf-8') as fp:
        fp.write(page_text)
    print("success")

简易网页采集器

import requests
#  反爬机制::UA检测  门户网站的服务器会检测对应请求的载体身份标识,如果检测到载体身份标识为某一款浏览器,说明该请求为正常请求
#  UA user-agent(请求载体的身份标识)
#  反反爬策略   UA伪装
if __name__ == '__main__':
    # ua伪装
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
    }
    url = 'https://www.sogou.com/web?'
    # 处理url携带的参数(封装到字典中)
    kw = input("enter a word:")
    param = {
        'query': kw
    }
    # 对指定url发起的请求对应的url是携带参数的,并且处理了参数
    response = requests.get(url=url,params=param,headers=headers)
    #获取响应数据
    page_text = response.text
    fileName = kw + '.html'
    with open(fileName,'w',encoding='utf-8') as fp:
        fp.write(page_text)
    print('success')

破解百度翻译

image-20201021211014768

  • post请求(携带参数)

image-20201021211154499

  • 响应结果是json数据

编码

import requests
import json
if __name__ == '__main__':
    post_url = 'https://fanyi.baidu.com/sug'
    # ua伪装
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
    }
    # post请求参数处理,类似get
    word = input('enter a word:')
    data = {
        'kw':word
    }
    # 发送请求
    response=requests.post(url=post_url,data=data,headers=headers)
    # 获取响应数据  json()方法返回的是obj
    dic_obj=response.json()
    print(dic_obj)
    # 持久化存储
    fileName = word +'.json'
    fp = open(fileName ,'w',encoding='utf-8')
    json.dump(dic_obj,fp=fp,ensure_ascii=False)
    print('success')
posted @ 2020-10-21 21:31  JWEY  阅读(91)  评论(0)    收藏  举报