今天实战运用requests
一、爬搜狗
# -*- coding: utf-8 -*-
import requests
url="http://www.sogou.com"
respond=requests.get(url)#1
respond.encoding=respond.apparent_encoding
print(respond.text)
代码分析:
1、respond.encoding作用从http header中提取响应内容编码。若header中没有charset字段则默认为ISO-8859-1编码模式,则无法解析中文,有可能会出现乱码。respond.apparent_encoding作用为从内容中分析出的响应内容编码。所以使用respond.encoding=respond.apparent_encoding
运行结果:
二、照片
这里爬爬我博客的头像
①首先获得图片链接
import requests
src = 'https://avatar.csdnimg.cn/D/2/1/1_m0_60960867_1633660031.jpg'
respond = requests.get(src)#1
with open('touxiang.jpg', 'wb') as f:#2
f.write(respond.content)#3
print('搞定!!')
代码分析
#1 先用requests库的get请求访问图片链接
#2 以touxiang为文件名,'wb'为读写类型,这里是写入。('rb'为读取)
#3 然后用respond.content接收图片内容,然后再写入(write)
运行结果:
就出现了
点开就可以看到我自己的头像
三、搜狗关键词搜索爬取
import requests
url='https://www.sogou.com/web'
kw=input('enter a word: ')#1
header={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53'
}#2
param={
'query':kw
}
respond=requests.get(url=url,params=param,headers=header)
content=respond.text#3
fileName=kw+'.html'#4
with open(fileName,'w',encoding='utf-8') as f:
f.write(content)
print(fileName,'搞定!!')
代码分析
我们使用所爬网站中的User-Agent来进行伪装,让它以为我们是它本身的一部分,从而使得我们能够成功爬取我们需要的信息。
#1 输出提示词并键盘输入关键字
#2 请求头,打开搜狗搜索,鼠标右键选择‘检查’,在网络中,点击搜索,可得到请求头。
#3 请求url对应的页面内容
#4 设置文件名为键盘输入的关键字,并且为html文件
运行结果:
然后打开html文件