爬虫
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)