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