爬虫学习打卡第四天——requests实战

今天实战运用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

运行结果:

爬虫学习打卡第四天——requests实战_第1张图片

二、照片

这里爬爬我博客的头像

爬虫学习打卡第四天——requests实战_第2张图片

①首先获得图片链接

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)

运行结果:

爬虫学习打卡第四天——requests实战_第3张图片

就出现了

点开就可以看到我自己的头像

爬虫学习打卡第四天——requests实战_第4张图片

 三、搜狗关键词搜索爬取

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 请求头,打开搜狗搜索,鼠标右键选择‘检查’,在网络中,点击搜索,可得到请求头。

爬虫学习打卡第四天——requests实战_第5张图片

#3 请求url对应的页面内容

#4 设置文件名为键盘输入的关键字,并且为html文件

运行结果:

爬虫学习打卡第四天——requests实战_第6张图片

 

然后打开html文件

爬虫学习打卡第四天——requests实战_第7张图片

四、爬取百度翻译

首先要找到接口,请求方式,以及请求头

爬虫学习打卡第四天——requests实战_第8张图片

爬虫学习打卡第四天——requests实战_第9张图片

import json
import requests
url='https://fanyi.baidu.com/sug'
word=input('请输入您要翻译的词语或句子:')
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'
}
data={
    'kw':word
}
repond=requests.post(url=url,data=data,headers=header)#1
dic_obj=repond.json()#2
filename=word+'.json'#3
with open(filename,'w',encoding='utf-8') as fp:
    json.dump(dic_obj,fp=fp,ensure_ascii=False)#4
j=dic_obj['data'][1]['v']#5
print(j)

代码分析

#1 POST请求

#2 response.json() 是把返回响应的json字符串转换成字典

#3 设置文件名为键盘输入,并且为json文件

#4 json.dump()是把python对象转换成json对象生成一个fp的文件流,和文件相关ensure_ascii=False:默认输出中文,如果把这个该成True,就可以输出ASCLL码

#5 设置为字典形式

运行结果

 

你可能感兴趣的