定义:
- 模拟浏览器访问网站
- 自动大批量地抓取目标数据
- 一个程序(脚本)
请求头伪装是最简单的反反爬,headers常用属性User-Agent、Referer、Cookies(暂时不会)
其中cookies用来存储账号、密码,在需要的时候被网站识别,维持当前访问会话
headers = {
# 操作系统、浏览器的版本等信息
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/65.0.3325.162 Safari/537.36',
# 标识请求发出页面
'Referer': 'https://www.mzitu.com'
}
用到的库:requests、re、bs4、requests、time、os等
获取url 访问网站 获取内容
def get_one_page(url):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
return None
except RequestException:
print("获取失败")
提取数据 清洗数据
// 几种技术手段
正则、beautfulsoup、xpath
a_soup= BeautifulSoup(html,"html.parser")
all_a = soup.find('div',class_='postlist').find_all('a', target='_blank')
def parse_one_page(html):
# compile 凑正则 findall 查
items = re.findall(r'<a.*?src="(.*?)".*?</a>', html, re.S)
return items
下载 数据持久化:一般保存在文件或者数据库中,如mongoDB,这是一种介于关系和非关系之间的数据库,操作比mysql方便