1.http
(1)当用户在地址输入了网址 发送网络请求的过程是什么
(2)http 的请求方式:
get 请求: 比较便捷 缺点:不安全;明文 参数的长度有限制
post请求:比较安全 数据整体没有限制 上传文件:put(不完全的);delete(删除一些信息) 发送网络请求 请求头里面 requesrtheader 返回数据:response
head(请求头):accept:文本的格式 accept-Encoding:编码格式 Connection:长链接 短连接 Cookie:验证用的 Host:域名 Referer:标志从哪个页面跳转过来的 User-Agent:浏览器和用户的信息
2.爬虫的价值
(1)数据的买卖:数据分析:出分析报告 流量
(2)阿里指数;百度指数
(3)合法性:灰色产业
政府没有法律规定爬虫是违法的,也没有法律规定爬虫是合法的
公司概念:公司让你怕数据库(窃取商业机密) 违法
(4)爬虫只可以爬取用户能访问到的数据
爱奇艺的视频(VIP 和 非VIP)
普通用户 只能看非VIP的 爬取非VIP的视频
VIP 爬取VIP的视频
普通用户想要爬取VIP的视频(黑客)
3.爬虫的分类
(1)通用爬虫
1.使用搜索引擎:百度;谷歌;360;雅虎;搜狗
优势:开放性拉速度快 劣势:目标不明确
(2)聚焦爬虫
1.目标明确
2.对用户的需求非常精准
3.返回的内容很固定
增量式:翻页:从第一页请求到最后一页
Deep:深度爬虫:静态数据:html css
动态数据:js代码;加密的js
robots:是否允许其他爬虫(通用爬虫)爬取某些内容 聚焦爬虫不遵守robots
爬虫和反爬虫作斗争:资源对等,胜利的永远是爬虫
3.爬虫的工作原理
确认你抓取目标的url是哪一个(url)
使用python代码发送请求获取数据(Java Go)
以下是今天练习的代码
import urllib.request def load_data(): url = "http://www.baidu.com/" # get请求 # http请求 # respinse:http响应文件 response = urllib.request.urlopen(url) print(response) # 读取内容bytes类型 data = response.read() print(data) # 将文件获取的内容转换成字符串 str_data = data.decode('utf-8') print(str_data) # 讲数据写入文件 with open('baidu.html','w',encoding='utf-8') as f: f.write(str_data ) # 讲字符串转化成 bytes 类型 str_name = 'baidu' bytes_name = str_name.encode('utf-8') print(bytes_name) # python爬取的类型:str bytes # 如果爬取回来的是 bytes 类型,但是写入需要输入 str :decode('utf-8') # 如果爬取回来的是 str 类型,但是写入需要输入 bytes :encode ('utf-8') load_data()
来源:https://www.cnblogs.com/Ningxuan/p/12421965.html