Python爬虫实战入门:爬取360模拟翻译(仅实验)

这篇具有很好参考价值的文章主要介绍了Python爬虫实战入门:爬取360模拟翻译(仅实验)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

目标网站:https://fanyi.so.com/#
要求:爬取360翻译数据包,实现翻译功能

所需第三方库

requests

简介

requests 模块是 python 基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。

安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

实战教程

打开网站

https://fanyi.so.com/#

Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言
进入网站之后鼠标右击检查,或者F12来到控制台,点击网络,然后刷新
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言

抓包

点击网络刷新之后,在点击Fetch/XHR,随意输入一个单词,点击翻译会发现出现一个数据包,这个数据包就是我们所需要的。
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言
点击这个数据包,然后点击标头,这里就有我们所需要的请求网址
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言

# 导入requests模块
import requests

# 请求网址
url = 'https://fanyi.so.com/index/search?eng=1&validate=&ignore_trans=0&query=hello'
添加请求头等信息

一般网站都会设置一定的反爬机制。很多爬虫向服务器请求数据,或者爬虫要请求很多信息时,会给服务器造成很大压力,严重时可能导致服务器宕机,那么,针对爬虫就会产生对应的反爬机制,比如识别user-agent就是一个初级的反爬机制,当访问者没有携带user-agent时,网站就会默认访问者是爬虫,从而可以拒绝提供信息反馈。

在标头下面有请求标头,把这些全部复制下来就行。
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言

# 获取请求头信息
headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Content-Length': '0',
    'Cookie': 'QiHooGUID=F02A63E0BCB72DB4A01C21FA023475E1.1703769301607; Q_UDID=00b0237e-501b-1360-b2eb-96b79d1ac5ec; __guid=144965027.253643186935022000.1703769305042.223; count=2',
    'Origin': 'https://fanyi.so.com',
    'Pro': 'fanyi',
    'Referer': 'https://fanyi.so.com/',
    'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
    'Sec-Ch-Ua-Mobile': '?0',
    'Sec-Ch-Ua-Platform': '"Windows"',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}
发送请求,解析数据

在获取请求网址那里可以看到,这个数据包是POST请求。也就是说我们需要额外的参数。点击载荷,下面这些就是我们所需要的数据。
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言

# post请求所需要的额外参数(数据类型为字典数据类型)
data_dic = {
    'eng': 1,
    'ignore_trans': 0,
    'query': 'hello'
}
# 发送请求,获取响应
res = requests.post(url, headers=headers, data=data_dic)

解析数据,打印翻译内容
点击预览可以看到,fanyi就是我们之前输入的单词翻译后的内容。现在只需要通过字典的形式取取值就可以得到翻译后的内容。
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言

data_dic = {
    'eng': 1,
    'ignore_trans': 0,
    'query': 'hello'
}
# 发送请求,获取响应
res = requests.post(url, headers=headers, data=data_dic)
# 将响应内容转化成json数据类型
data = res.json()
# 打印翻译内容
print(data['data']['fanyi'])

Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言

修改翻译内容以及实现中英互译

从之前载荷里的数据可以猜出query就是我们所输入的单词,那么我们直接用input去代替我们所要翻译的单词就可以了。

# 改变query的值
word = input('请输入你要翻译的内容:')
# post请求所需要的额外参数(数据类型为字典数据类型)
data_dic = {
    'eng': 1,
    'ignore_trans': 0,
    'query': word
}
# 发送请求,获取响应
res = requests.post(url, headers=headers, data=data_dic)
# 将响应内容转化成json数据类型
data = res.json()
# 打印翻译内容
print(data['data']['fanyi'])

Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言
实现中英互译
可以看到,目前程序只能实现英译中,是无法实现中译英的。
Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言
现在我们不妨先试验一下,用360翻译实现中译英,现在我们发现,载荷数据第一行eng在英译中时的值是1,现在中译英之后就变成了0,也就说明,是英译中还是中译英就取决于这个参数。所以现在我们只要判断在程序中输入的是中文还是英文就行啦。

Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言
我们知道,python中UTF-8编码下,一个英文字符占1个字节,一个中文字符(通常是汉字)占3个字节。,所以我们只要判断程序中输入的第一个字的字节长度,就可以判断输入的是中文还是英文啦。

# 改变query的值
word = input('请输入你要翻译的内容:')
# 获取输入的内容是中文还是英文
lenght = len(word[0].encode('utf-8'))
# 判断,如果输入的是中文,这翻译为英文;如果输入的是英文,这翻译为中文
if lenght == 3:
    eng = 0
else:
    eng = 1
# post请求所需要的额外参数(数据类型为字典数据类型)
data_dic = {
    'eng': eng,
    'ignore_trans': 0,
    'query': word
}
# 发送请求,获取响应
res = requests.post(url, headers=headers, data=data_dic)
# 将响应内容转化成json数据类型
data = res.json()
# 打印翻译内容
print(data['data']['fanyi'])

Python爬虫实战入门:爬取360模拟翻译(仅实验),python,爬虫,开发语言
这样我们就实现中英互译啦。当然还可以在原先的基础上在改进一下,比如可以加一个死循环,实现多次翻译等等。文章来源地址https://www.toymoban.com/news/detail-835277.html

完整代码

# 导入requests模块
import requests

# 获取360翻译的翻译的数据包地址
url = 'https://fanyi.so.com/index/search?eng=1&validate=&ignore_trans=0&query=hello'
# 获取请求头等伪装信息
head = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Content-Length': '0',
    'Cookie': 'QiHooGUID=F02A63E0BCB72DB4A01C21FA023475E1.1703769301607; Q_UDID=00b0237e-501b-1360-b2eb-96b79d1ac5ec; __guid=144965027.253643186935022000.1703769305042.223; count=2',
    'Origin': 'https://fanyi.so.com',
    'Pro': 'fanyi',
    'Referer': 'https://fanyi.so.com/',
    'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
    'Sec-Ch-Ua-Mobile': '?0',
    'Sec-Ch-Ua-Platform': '"Windows"',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 运行之后可以反复翻译
while 1:
    # 改变query的值
    word = input('请输入你要翻译的内容:')
    # 获取输入的内容是中文还是英文
    lenght = len(word[0].encode('utf-8'))
    # 判断,如果输入的是中文,这翻译为英文;如果输入的是英文,这翻译为中文
    if lenght == 3:
        eng = 0
    else:
        eng = 1
    # post请求所需要的额外参数(数据类型为字典数据类型)
    data_dic = {
        'eng': eng,
        'ignore_trans': 0,
        'query': word
    }
    # 发送请求,获取响应
    res = requests.post(url, headers=head, data=data_dic)
    # 将响应内容转化成json数据类型
    data = res.json()
    # 打印翻译内容
    print(data['data']['fanyi'])

到了这里,关于Python爬虫实战入门:爬取360模拟翻译(仅实验)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 六个步骤学会使用Python爬虫爬取数据(爬虫爬取微博实战)

    用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂。以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了。 第一步:安装requests库和BeautifulSoup库 在程序中两个库的书写是这样的: 由于我使用的是pycharm进行的python编程。所以

    2024年02月08日
    浏览(60)
  • python爬虫实战(1)--爬取新闻数据

    想要每天看到新闻数据又不想占用太多时间去整理,萌生自己抓取新闻网站的想法。 使用python语言可以快速实现,调用 BeautifulSoup 包里面的方法 安装BeautifulSoup 完成以后引入项目 定义请求头,方便把请求包装成正常的用户请求,防止被拒绝 定义被抓取的url,并请求加上请求

    2024年02月13日
    浏览(58)
  • Python爬虫实战(高级篇)—3百度翻译网页版爬虫(附完整代码)

    库 安装 js2py pip install js2py requests pip install requests 这里我们发现所需的参数: 1、sign(这是最重要的!!) 2、token 3、ts,时间戳 原帖查看

    2024年02月08日
    浏览(49)
  • 【爬虫系列】Python爬虫实战--招聘网站的职位信息爬取

    1. 需求分析 从网上找工作,大家一般都会通过各种招聘网站去检索相关信息,今天利用爬虫采集招聘网站的职位信息,比如岗位名称,岗位要求,薪资,公司名称,公司规模,公司位置,福利待遇等最为关心的内容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目标

    2024年02月02日
    浏览(52)
  • Python应用-爬虫实战-求是网周刊文章爬取

    任务描述 本关任务:编写一个爬虫,并使用正则表达式获取求是周刊 2019 年第一期的所有文章的 url 。详情请查看《求是》2019年第1期 。 相关知识 获取每个新闻的 url 有以下几个步骤: 首先获取 2019 年第 1 期页面的源码,需要解决部分反爬机制; 找到目标 url 所在位置,观

    2024年02月04日
    浏览(52)
  • 爬虫学习记录之Python 爬虫实战:爬取研招网招生信息详情

    【简介】本篇博客 为爱冲锋 ,爬取北京全部高校的全部招生信息,最后持久化存储为表格形式,可以用作筛选高校。 此处导入本次爬虫所需要的全部依赖包分别是以下内容,本篇博客将爬取研招网北京所有高校的招生信息,主要爬取内容为学校,考试方式,所在学院,专业

    2024年01月24日
    浏览(50)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(83)
  • Python爬虫实战-批量爬取豆瓣电影排行信息

    大家好,我是python222小锋老师。 近日锋哥又卷了一波Python实战课程-批量爬取豆瓣电影排行信息,主要是巩固下Python爬虫基础 视频版教程: Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程_哔哩哔哩_bilibili Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程作者:小锋老师

    2024年02月05日
    浏览(57)
  • Python爬虫实战-批量爬取下载网易云音乐

    大家好,我是python222小锋老师。前段时间卷了一套  Python3零基础7天入门实战 https://blog.csdn.net/caoli201314/article/details/132882813 1小时掌握Python操作Mysql数据库之pymysql模块技术 https://blog.csdn.net/caoli201314/article/details/133199207 一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、se

    2024年02月05日
    浏览(88)
  • 〖Python网络爬虫实战㉕〗- Ajax数据爬取之Ajax 案例实战

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月06日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包