Python爬虫requests最简单基础的小例子
一些爬虫的基本概念:
爬虫:通过编写程序,模拟浏览器上网,让其去互联网上抓取数据。
爬虫、反爬机制、反反爬策略:robots.txt协议-君子协议
http协议:服务器和客户端进行数据交互的一种形式
常用请求头信息:
User-Agent:请求载体的身份标识 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Connection:请求完毕后,是断开连接还是保持连接
常用响应头信息:
Content-Type:服务器响应回客户端的数据类型
https协议:安全的超文本传输协议 s:security
加密方式:
对称秘钥加密
非对称秘钥加密
证书秘钥加密-https采用-有数字签名的公钥
requests模块是Python中原生的一款基于网络请求的模块,功能强大,简单便捷,效率高。作用:模拟浏览器发请求。
如何使用:
1、指定url
2、发起请求
3、获取响应数据
4、持久化存储响应数据
#爬取搜狗首页的页面数据
import requests
#指定url
url = 'https://www.sogou.com/'
#发起请求
response = requests.get(url=url)
#获取响应数据,text返回的是字符串形式的响应数据
page_text = response.text
print(page_text)
#持久化存储响应数据
with open('./sogou.html','w',encoding = 'utf-8') as fp:
fp.write(page_text)
大部分情况下或者基本上,Python爬虫需要进行UA伪装,关于UA伪装的内容在下面的示例代码的注释中简单地介绍了。
#简易网页采集器
#UA:User-Agent
#UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,
#说明该请求是一个正常的请求,但是如果检测到请求的载体身份标识不是基于某一款浏览器,则表示该请求为
#不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求。
#UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器
import requests
#UA伪装:将对应的User-Agent封装到一个字典中
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
url='https://www.sogou.com/web'
#处理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,'保存成功!')