一、爬虫概念
‘’’
爬虫在使用场景中的分类
一通用爬虫:
抓取系统重要组成部分。抓取的是一整张页面数据。
一聚焦爬虫:
是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
-增量式爬虫:
检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。
‘’’
‘’’
反爬机制
门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
反爬机制
门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
反反爬策略
爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网的相关信息
‘’’
‘’’
robots.txt协议:
君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。
http协议:
—概念:就是服务器和寄户端进行数据交互的一种形式。遵从了这个协议就能交互
常用请求头信息
-User-Agent:请求载体的身份标识
-Connection:请求完毕后,是断开连接还是保持连接
常用响应头信息
- Content-Type:服务器响应回客户端的数据类型
https协议:
-安全的超文本传输协议
加密方式
一对称秘钥加密
一非时称秘钥加密
一证书秘钥加密
‘’’
二、爬取网页
from bs4 import BeautifulSoup #网页解析·获取数据
import re #正则表达式·进行文字匹配
import urllib.request, urllib.error #制定URL·获取网页数据
import xlwt #进excel操作
import sqlite3#进子-SQLite数据库操作
def main():
baseurl = “https://movie.douban.com/top250”
# 1.爬取网页
datalist=getData(baseurl)
savepath=".\豆瓣电影Top250.xls"
#3.保有数据
saveData(savepath)
#爬取网页
def getData(baseurl):
datalist=[]
# 2.逐一解析数据
return datalist
def saveData(savepath):
print()
三、requests模块
‘’’
requests模块
-urllib模块
-requests模块
requests模块: python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。
作用:模拟浏览器发请求。
如何使用:(requests模块的编码·流程)
指定url
发起请求
获取响应数据
持久化存储
环境安装
‘’’
实例:爬取搜狗网页
import requests
if __name__=="__main__":
#step1:指定url
url="https://www.sogou.com"
#step2:发送请求
#get方法会返回一个响应对象
response=requests.get(url=url)
#step3:获取响应数据,text返回的是字符串形式的响应数据
page_text=response.text
print(page_text,end="")
#step4:持久化存储
with open('./sogou.html','w',encoding='utf-8' ) as fp:
fp.write(page_text)
print('爬取数据结束!!!')
#import bs4#网页解析获取数据
爬取百度网页
from urllib.request import urlopen
url="http://www.baidu.com"
resp=urlopen(url)
#print(resp.read().decode("utf-8"))
with open("mybaidu.html",mode="w") as f:
#读取网页的源代码
f.write(resp.read().decode("utf-8"))
print("over"
)