网络请求模块:urllib模块(比较复杂)、requests模块
优采云 发布时间: 2021-04-25 20:03网络请求模块:urllib模块(比较复杂)、requests模块
网络请求模块:urllib模块(复杂),请求模块
一、请求模块:
基于python中网络请求的本机模块,功能强大,简单便捷,并且非常高效。
1、功能:模拟来自浏览器的请求
如何使用2、(编码过程):
3、环境安装:pip安装请求
4、实战代码:
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)
#step 4:持久化存储
with open("./sogou.html","w",encoding="utf-8") as fp:
fp.write(page_text)
print("爬取数据结束")
返回的响应数据(部分屏幕截图):
打开HTML文件后界面的屏幕截图:
5、实用合并1:搜寻Sogou指定条目的搜索结果界面(简单网页采集器)
import requests
if __name__=="__main__":
#UA伪装:将对应的User-Agent封装到一个字典中
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/'
}
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,"保存成功!!")
在浏览器中搜索“北斗导航”的链接看起来像这样:北斗导航&_asf =&_ ast =&w = 01019900&p = 40040100&ie = utf8&from = index-nologin&s_from = index&sut = 23426&sst0 = 77&lkt = 4%2C51%2C56&sugsCC41077000
为简化起见,它看起来像这样:北斗导航
?前面是浏览器,后面是我们检索的内容参数。
这里是一个简单的网页采集器,将检索到的内容设置为动态,查询通过用户输入存储在字典中,查询是键值,并且该值通过输入输入
用户代理已存储
如何获得它,如前一个注释中所述。
要学习python采集器,我需要知道些什么?
门户网站的服务器将检测相应请求的运营商ID。如果它检测到所请求的运营商ID是某个浏览器,则意味着该请求是正常请求。但是,如果检测到所请求的运营商身份不是基于某个浏览器,则表示该请求是异常请求(抓取工具)。这样服务器可能会拒绝该请求。