2020-11-14
程序员文章站
2022-07-14 16:59:43
...
requests模块:
介绍:
python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。
作用:
模拟浏览器发请求。
Requests使用流程:
1、指定URL(要访问的地址)
2、发起请求
3、获取响应数据
4、持久化存储
**下面进行代码分析:
**
UA伪装:
对付反爬机制
通俗来说访问页面都会带有一个标识,比如说安卓 IOS 电脑版,如果没有UA伪装的标识,服务器就会发现这是一个爬虫程序,从而禁止访问
案例:
爬取搜狗搜索手动输入搜索的信息
①进行UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0'
}
②指定URL
url = 'https://www.sogou.com/web?'
url从何而来?
1、随意搜索一个词语
2、进入搜索结果页面之后,可以看到地址栏上面的一串地址,“?”后方就是我们输入的信息,故提取包含?之前的所有地址,此地址+要查询的内容,为查询的结果
③发起请求
kw = input('enter a word:') //要查询的内容
param = {
'query':kw
}
respones = requests.get(url=url,params=param,headers = headers)
④获取相应数据
page_text = respones.text //响应的数据以文本的形式存储到临时寄存器
⑤持久化存储
将获取的内容保存到本地的文件下
fileName = kw+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
完整代码如下:
# -*- coding: utf-8 -*-
import requests
if __name__ == "__main__":
#UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0'
}
url = 'https://www.sogou.com/web?'
kw = input('enter a word:')
param = {
'query':kw
}
respones = requests.get(url=url,params=param,headers = headers)
page_text = respones.text
fileName = kw+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,'success')
第一次写博客,不好的地方请指正,谢谢
推荐阅读