爬虫day01

爬虫

1.概念:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。

python可以实现爬虫

(1)pthon:代码优雅学习成本低,具有非常多的模块。具有框架的支持

scrapy

https安全超文本传输协议,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

SSL三种加密方式:

对称秘钥加密:

非对称秘钥加密:

数字证书秘钥加密:

秘钥加密

分为三种,对称秘钥加密和非对称秘钥加密,以及证书加密

对称秘钥加密:客户端对数据加密将秘钥一块发送给服务器端,服务器端负责解密。

非对称秘钥加密:服务器端先告诉客户端,按照服务器端给客户端指定的这种加密形式进行加密。

(好处就是不用再传秘钥了,不怕被拦截了。拦截了里面也没有秘钥,所以无法被破解,只有服务器端接受了密文之后,服务器端用自己的私钥,对密文进行解密。

坏处:非对称加密效率较低,处理起来较为复杂,通信过程中使用就有一定的效率问题而影响通信速度)

证书加密:和非对称加密相比多了中间环节(数字证书的三方机构)

# 演示最简单的一个爬虫程序
# 导包
import requests #使用频率高
import urllib.request
import urllib.parse
#指定一个url
url='https://www.taobao.com'
#通过requests模块发起请求:get函数返回响应对象
response=requests.get(url=url) #模块调函数,函数调参数
#response.json()#获取响应对象中json格式的数据
# response.encoding #获取响应数据的编码格式(可被修改)
# content获取的是二进制的数据
# data=response.content#二进制
#获取响应内容(爬去淘宝页面数据)
# response.status_code#响应状态码
# response.headers#获取响应头信息
data=response.text#字符串
print(response.encoding)  #这个响应格式是由服务器决定的

  

# 需求,根据指定的 url进行网页数据的爬去,且进行持久化操作
import requests
# 指定url
url='https://www.taobao.com'
# 发起请求
response=requests.get(url)   #问服务器要东西请求对象

data=response.text#对象的东西取出来  找你要东西 把东西给你  从响应对象里取出来

#进行文件操作
with open('./taobao.html','w',encoding='utf-8')as fp:
    fp.write(data)
    print('over')

 动态数据抓取不到

#get

import requests
import urllib.request
#requests的get请求

#模拟抓取系统,手动指定关键字进行百度搜索,保存搜索结果
wd=input('enter a word:')
get_url='http://www.baidu.com/s'
#url的特性:url必须是有ascii编码的数据组成
#可以将请求携带的参数封装到一个字典中
param={
    'ie':'utf-8',
    'wd':wd
}

# url=urllib.request.urlparse(url)
# # 域名当中有中文的话能够通过urlparse(url)进行解析

#参数2:对请求参数的封装
response=requests.get(url=get_url,params=param)
# response.encoding='utf-8'
data=response.text
filename=wd+'.html'
with open(filename,'w',encoding='utf-8') as fp:
    fp.write(data)

  

原文地址:https://www.cnblogs.com/wangmiaolu/p/9709951.html