首页 > 编程语言 >python网络爬虫(一)

python网络爬虫(一)

时间:2022-12-26 11:24:47浏览次数:36  
标签:加密 python req 爬虫 urllib 网络 translate data

网络爬虫是一个很有意思的技术,我一直都想尝试着学习网络爬虫这项技术。

其基本原理比较简单:就是模拟客户端发送请求,得到服务器端的响应,从中获取到有用的信息。

但是现在的网站基本都有防爬策略、且会对请求或者服务器端进行一定加密。所以,我建议尽量一开始尽量去爬取无加密的网站,有加密的网站需要取看源码(比较麻烦)。

我抄了别人一段爬取有道翻译的代码,自己改了一下:

import urllib.request
import urllib.parse
import json


def translate():
centens = input('输入要翻译的语句:')
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
head = {'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'} # 增加请求头,防反爬虫 UA伪装
data = {'i':centens,
'from':'AUTO',
'to':'AUTO',
'smartresult':'dict',
'client':'fanyideskweb',
'salt':'16057996372935',
'lts':'1605799637293',
'bv':'f7d97c24a497388db1420108e6c3537b',
'doctype':'json',
'version':'2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME'
} # 带上from data的数据进行请求
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url, data, head)
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
req = json.loads(html)
result = req['translateResult'][0][0]['tgt']
# print(f'中英互译的结果:{result}')
return result


t = translate()
print(f'中英互译的结果:{t}')

 首先,找到post请求。在浏览器的开发者工具 网络一项种可以找到

 

 看一下post了啥

 

 所以,我们可以根据这个来进行伪装。

最后,我们得到了它的回应:

 

 一堆乱码,显然经过了加密,直接调用我给出的代码吧。

 

标签:加密,python,req,爬虫,urllib,网络,translate,data
From: https://www.cnblogs.com/xmds/p/17005285.html

相关文章

  • python100题总结
    1.range()函数用于生成1个序列(start,stop,step)2.sleep()导入time模块time.sleep3.ifname=="main"-如果模块是被直接运行的,则代码块被运行,-如果模块是被导......
  • VLC接收网络串流缓冲时间的计算
     VLC版本2.0.1       最近研究IP-STB音视频同步问题,发现方案自带的自动STC在网络延时过大时,不能成功同步音视频。在参考了VLC的串流播放机制后,以为适当缓冲可以......
  • 使用python怎么操作PPT
    使用python怎么操作PPT发布时间:2021-02-0515:31:54来源:亿速云阅读:285作者:Leah栏目:开发技术活动:亿速云双十二特惠活动,python开发者服务器16.5元起,更有iphone14......
  • 【脚本项目源码】Python制作提升成功率90%的表白神器
    前言今天子川就给大家带来就是的利用Python制作表白神器,让这个寒冷的冬天变得格外温馨,到了年底依然能热情拥抱,也见证了两人情意如昔;记得发给自己的心仪对象,废话不多说直接......
  • Python小程序实现
    Python小程序实现标签(空格分隔):python目录Python小程序实现1,16进制IP地址转换为10进制2,10进制IP地址转换为16进制3,16进制字符串转换为10进制1,16进制IP地址转换为10进制......
  • [Smplify环境配置]Ubuntu 22.04+Python 3.9+pycharm 2022.3 配置Smplify
    最近在做单目3d人体姿态估计的相关项目,看了一些基于smpl的论文,smplify是smpl人体模型比较早期的应用,想着复现了研究一下,但是smplify是基于python2.7编写的,这里结合网上很......
  • python编程 ——从入门到实践——第三章,列表
    1、改变字符串大小写的三个函数name='adchanlong'print(name.title()) #title()对name每个词的首字母进行大写print(name.upper())#upper()对name全部变成大写prin......
  • Python函数用法和底层分析
    目录Python函数用法和底层分析函数的基本概念Python函数的分类核心要点形参和实参文档字符串(函数的注释)返回值函数也是对象,内存底层分析变量的作用域(全局变量和局部变......
  • 第三代神经网络——脉冲神经网络(SNN)的仿真
    1.问题描述:  同传统的人工神经网络一样,脉冲神经网络同样分为三种拓扑结构。它们分别是前馈型脉冲神经网络(feed-forwardspikingneuralnetwork)、递归型脉冲神经网络......
  • PNN神经网络概述
     PNN,ProbabilisticNeuralNetworks,即概率神经网络[43~45]是一种基于贝叶斯决策规则的神经网络技术,其神经网络的训练期望误差较小,是一种基于统计原理的人工神经网络。概......