爬虫概念:
通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程
分类:
1,通用爬虫:抓取一整张页面数据
2,聚焦爬虫:抓取页面中的局部内容
3,增量式爬虫:只会抓取网站中最新更新出来的数据
反爬协议robots.txt协议
http协议:
服务器与客户端进行数据交互的一种形式
User-Agent:请求载体的身份标识
Connection:请求完毕是断开还是保持连接
Content-Type: 服务器响应回客户端的数据类型
https协议:证书认证加密,安全的超文本传输协议
1,requests模块:
作用:模拟浏览器发请求
流程:1,指定url 2,发起请求 3,获取响应数据 4,持久化存储
1.1爬取搜狗首页:
import requests
if __name__ == '__main__':
url='https://www.sogou.com/'
response=requests.get(url=url)
page_text=response.text#返回字符串形式的响应数据
print(page_text)
with open('./sougou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
print('爬取数据结束!')
1.2网页采集器
User-Agent:请求载体的身份标识
UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器
import requests
if __name__ == '__main__':
#UA伪装:将对应的UA封装到一个字典里
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2669.400 QQBrowser/9.6.10990.400'
}
url='https://www.sogou.com/sie?hdq=AQxRG-0000&'
#处理URL参数分装到字典里
kw=input('enter a word:')
param={
'query':kw
}
#对指定URL发起的请求对应的url是携带参数的请求过程中处理了参数
response=requests.get(url=url,params=param,headers=headers)
page_text=response.text#返回字符串形式的响应数据
fileName=kw+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,'保存成功!!')