一起学爬虫(Python) — 14

爬虫实践:爬取有道翻译(附带UI界面) 1.爬取分析 实现一键翻译功能,最简单的方案当然是我们的爬虫啦,这里,我选择的是 有道翻译 这个页面,在左边输入文字,那么浏览器会把你输入的信息传输给服务器。再返回对应的内容。这就是一个典型的Post操作。我们可以在XHR中查看数据的传送方式 reques url 就是我们要请求的网址 fromdata里面就是我们要提交的数据 i:需要翻译的内容 from:翻译内容的语言 to:翻译成什么语言 所以可以通过改变from/to,来实现不同语言之间的翻译,而后面的salt,sign,its目前还看不懂, 阅读详情

一起学爬虫(Python) — 19 年轻人,进来学自动化
注:本篇不严谨,可以直接看15

前言

点赞!
在这里插入图片描述

真·前言

之前咱们不是爬了一个小小的翻译网站嘛,但是呢,也不知道是那个网站配置太一般了,还是各位太猛了,让那个网站真的受不了,于是乎好像就崩溃了的说,所以今天啊,我们就教大家进行有道翻译的爬取,这可能是一个小boss吧,所以大家要认真看认真学哦!!!

对了,提前下载好火狐浏览器~

知己知彼

首先呢,我们要先打开这个有道翻译啊,大家不要找错了,小泽就差点找错了,直接把网址带上好了:

http://fanyi.youdao.com/

在这里插入图片描述
相比昨天的绿色,今天的红色真的是十分可爱呢,快让我们开始愉快的学习吧!

首先,打开我们的F12、检查、开发者工具,然后点到Network里面。

接着,点击翻译按钮。

在这里插入图片描述
在这里插入图片描述
大家多翻译几次,就能观察到有一些参数我们是可以直接知道的,比如:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还有三个参数呢,是会随机变动的:

在这里插入图片描述
但是我们就会发现,其实这个lts就是salt减去了一个数,或者说salt就是lts加了一个随机数,这里因为小泽见的多了,所以能直接看出来这个东西他不是人,他是一个时间戳,时间戳,时间戳,什么是时间戳???

在这里插入图片描述
在这里插入图片描述
各位各位各位,看到没有看到没有看到没有!!!

在这里插入图片描述
在这里插入图片描述
很像了吧!

但是到底是不是呢,还是要我们深入的研究一下才知道,毕竟现在只是一种猜测~

在这里插入图片描述
这个,才是我们的最终目的!

对了,还有记得看一下返回的数据,是不是我们要的数据~

在这里插入图片描述
确定无误!

火狐的初次登场

可能很多小伙伴都没有下载火狐哈,之前我们一直在用的都是360极速浏览器!

咳咳,应该要用谷歌的,不过谷歌实在是太慢啦!!!

但是今天,我们就要拿下火狐的第一次,一针见血!

为什么要用火狐呢?

答案是…因为火狐的抓包工具中,可以很便携的让我们看到某事件绑定的函数代码!!!

如果你已经开始听不懂了,说明你的前端学的不咋地,或者没有接触,不过没关系,先硬啃,我们一步一步来~

打开火狐

在这里插入图片描述
用火狐打开我们的有道翻译,然后右键点击检察元素,同样的用我们的金手指,点击翻译这个按钮~

在这里插入图片描述
在这里插入图片描述
会发现,这一行后面跟了一个我们没有见过的东西,这个就是这个按钮上的超链接标签绑定的事件!

打开它,看到那个click了嘛,click是点击的意思哦,就是说只要点击它,就会触发那个事件~

在这里插入图片描述
点击这里~

在这里插入图片描述
这个,就是绑定的函数代码!

看不懂吧,看不懂没关系,先知道就好。

在这里插入图片描述
然后我们点开它~

在这里插入图片描述
然后你就发现这里有超级超级长的一行代码…根本看不懂!

这里就要用到我们的js代码格式化网站啦:

https://tool.oschina.net/codeformat/js/

打开它,然后把所有的代码复制粘贴进去:

在这里插入图片描述
果然很长!

在这里插入图片描述
把这么长的一段代码复制到我们的记事本里,准备分析!

那么…要怎么分析呢?

首先各位跟着小泽一起蹲坑,不是一起捋一捋思路:

我先问宁一个问题,我们点击这个按钮的时候,是不是会执行一个函数事件?

对啊。

那执行了这个函数事件是不是就会向服务器发送一串数据,里面有我们要翻译的东西,还有那些奇奇怪怪的参数。

对啊。

那也就是说这个函数事件里面,会把那些参数都封装好,然后再发送给服务器,对吧。

对啊。

现在我们已经找到了这个函数事件诶,扒光光了的那种。

啊这…

在这里插入图片描述
那么我们是不是就可以在这个函数里面找到我们的参数呢???

在这里插入图片描述
就是这些 东东 啊!!!

不要跟我说你听迷糊了,这么简单易懂的呢,如果你真的听不懂的话…那就把听不懂发在评论里吧。

所以我们要去我们整理好然后又复制好的那一大串代码里去找这几个单词,懂了吗!!!

因为那一大串函数就是发送数据的,里面肯定会有这些单词,如果没有的话,你来打我,我给你打!

咳咳,分析完成了哈,接下来教大家怎么去找~

海底捞针

俗话说女人是水多的,我们要在这么大的一片数据里找到我们要的东西,就像在水里游泳一样,如果很大那就会很有感觉,一下就找到了,但是如果你的很小就没办法啦,慢慢找吧。

在这里插入图片描述
这里建议大家直接搜索这个url,为什么呢?

因为这个函数事件肯定要指定这个url,才会对这个url发起请求吧,没毛病吧~

在这里插入图片描述
不要把全部的url都加进去了诶,因为他们自己家人发送请求,没必要还要每次都带上http那些的,就跟你自己加载美女图片只需要 ./美女图片.jpg 就可以了一样。

这个呢,是前端写法的请求方式,不要在意那么多~

看到红框框了嘛:data: e,

那我们就继续搜索data,在这个位置搜索的话,是可以搜这附近的data的,至于往上还是往下搜,当然是往上拉,小笨蛋。

在这里插入图片描述
你可以选择点击向上的那个简单,当然如果你有键盘的话就按键盘上的向上的那个箭头~

一直找,直到找到看起来有用的数据!

在这里插入图片描述
可以看到又看到这个data了哈,不要管,不是我们要的东西!

在这里插入图片描述
掌声,花花~

有直播内味了吧,hh

我们成功找到了这个data封装的数据哈,可以看一看都对应了什么东西!

在这里插入图片描述
第一行的i呢,不用说肯定是我们要翻译的那个东西,就是我们输入的文本。

在这里插入图片描述
没用,为什么呢:
在这里插入图片描述
因为根本就没有嘛~

在这里插入图片描述
木大木大

在这里插入图片描述
可以看到啊,基本都是没用的,然后再仔细一看…

在这里插入图片描述
纳尼(ÒωÓױ)!

打扰了,我们继续往上找吧…

在这里插入图片描述
好的,现在找到一条看起来比较肥胖的,但是仔细一看好像还是没有什么有用的信息呢…因为我们没有学过前端的话,肯定是看不懂这些东西的嘛,那就说明data不行,我们得换一个搜索目标!

在这里插入图片描述

就用她吧!

在这里插入图片描述
苍天不负有心人,终于让我们找到了!!

直接把这个字典复制到我们的py文件中,然后整理一下…

在这里插入图片描述
咳咳,大概就是这样子啊…

看到那个action了吗,右边有个||,这个||的意思呢就是或的意思,就是说我们在e和另外一个选一个就ok了,那我们肯定选择现成的啊!

在这里插入图片描述
整理好了之后,上面画黑道道的我们都可以自己解决,对吧,第一个就是要翻译的内容嘛,第二个和第三个我们写成AUTO好了。

现在我们可以有目的的定点去找我们的client!

在这里插入图片描述

然后再找salt!

在这里插入图片描述
不找不要紧,一找吓一跳,直接连带着找到了sign还有bv!

果不其然,salt就是时间戳加上了一个随机数,而不是再乘十,还有一个md5加密,这个我们可以用python中的hashlib模块实现!!

这里是加密成16进制了,至于为什么,懂得人上下翻翻就能看到很多很长的一串一串的,不懂的话…百度吧~ 或者花时间去学前端!

e = input('你要翻译啥:')
# 时间戳
r = int(time.time() * 1000)
i = str(int(time.time() * 1000) + random.randint(1, 10))
# md5.digest()      返回的是二进制
# md5.hexdigest()   返回的是十六进制
sign = hashlib.md5(("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@").encode('utf-8')).hexdigest()

也就是说我们可以通过这种方法获得sign这个动态并且加密的值!

data = {
    'i': e,
    'from': 'AUTO',
    'to': 'AUTO',
    'smartresult': "dict",
    'client': "fanyideskweb",
    'salt': i,
    'sign': sign,
    'lts': r,
    'doctype': "json",
    'version': "2.1",
    'keyfrom': "fanyi.web",
    'action': "FY_BY_DEFAULT"
}

至于其他的详细内容,小泽就不一一带大家找了,慢慢百度然后自己加备注,这样更有利于自己进步!

这也是为了你们好,望理解!!!

当然,如果很想了解的很清楚很明白的话,多百度,自学前端,或者加入我们的交流群一起交流!!!

没有广告,没有男的,全都是女的!

在这里插入图片描述

最后的最后

当然上面还有一个点没跟大家说到,那就是我为什么把在这里插入图片描述
这个参数给去掉了,那是因为我在函数事件中发现这个东西是调用的另外一个文件,也就是说是可有可无的,因为它会自动去调用,然后自动去生成,是不需要我们的任何数据的,就不加辣~

点赞!点赞!点赞!

在这里插入图片描述

猜猜我是谁

没错,在这里呢,就把所有代码都附上,如果可以的话还是希望你能自己多思考思考,多找一找,多百度百度,这种东西不同的人有不同的理解,希望大家都能学会爬自己喜欢的美女的图片!

import time
import random
import hashlib
import requests
headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
e = input('你要翻译啥:')
# 时间戳
r = int(time.time() * 1000)
i = str(int(time.time() * 1000) + random.randint(1, 10))
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
# md5加密
# md5.digest()      返回的是二进制
# md5.hexdigest()   返回的是十六进制
sign = hashlib.md5(("fanyideskweb" + e + i + "Tbh5E8=q6U3EXe+&L[4c@").encode('utf-8')).hexdigest()
data = {
    'i': e,
    'from': 'AUTO',
    'to': 'AUTO',
    'smartresult': "dict",
    'client': "fanyideskweb",
    'salt': i,
    'sign': sign,
    'lts': r,
    'doctype': "json",
    'version': "2.1",
    'keyfrom': "fanyi.web",
    'action': "FY_BY_DEFAULT"
}
# 因为是json格式的嘛,所以json()一下
response = requests.post(url,data=data,headers=headers).json()
# 如果不懂为什么要这样子,可以直接print(response)
print(response['translateResult'][0][0]['tgt'])

接下来,炕头c加炕头v吧!

当然,也会有细心的小伙伴会发现上面有很多错误,比如url,和我们原本找的不同,还有参数里面最麻烦的那个其实不用加入也可以获得翻译的结果,还有就是那个参数的加密就是错的,这里是因为小泽对前端的知识呢也不算太精通,看的迷迷糊糊的,但是能自己捣鼓出来,让我说的话还真说不清楚,所以大家也不要太刁钻,思路就是这么个思路,先将就一下,等之后再详细的跟大家说一说js相关的知识点,然后今天的一切疑问,就会迎刃而解!

拜拜喽

Python网络爬虫基础 基础知识讲解部分(网络爬虫入门) 网络爬虫就是自动地从互联网上获取程序。想必你听说过这个词汇,但是又不太了解,大家会觉得掌握网络爬虫还是要花一些功夫的,因此这个门槛让你有点望而却步。我常常觉得计算机和互联网的发明给人类带来了如此大的便利,让人们不用阅读说明书就知道如何上手,但是偏偏编程的道路却又是如此艰辛。因此,我会尽可能做到浅显易懂,希望读者能够读懂我说了什么,从而能够享受到其中的快乐。 基本介... 阅读详情

相关推荐

python毕业设计论文-基于Python的网络爬虫的设计与实现.doc

摘要:当代万维网和互联网技术发展迅猛,有时候在浏览某些网页、相册或者某些图片网站时,发现很多图片都很喜欢想要下载到本地,但是数量较多时操作会过于繁琐。此爬虫软件是为了使用户能够便捷的获取并下载某些网站的图片,它的最终目的是能够实现对大多数网站进行成功的获取并下载。网络爬虫是一个能够对网页实现自动提取的程序,在搜索引擎中,从万维网上它能为其下载网页,故是组成搜索引擎的重要部分。本软件由Python语...

weixin_37988176的博客 1万+

python爬虫模拟有道翻译

python爬虫模拟有道翻译 案例目的: 通过模拟有道翻译,介绍携带form表单发送post请求以及破解form表单中的加密数据。 案例实现功能: 模拟有道翻译,实现中英互译。 爬取过程分析: 找到目标的url,注意,这里的url是指对应的response为翻译结果的url。而非首页的url。如下图: 检查响应结果: 找到url之后,往下开始我们的重点了 本次爬取的关键在于:怎样处理表单数据中发生变化的数据,以及如何破解加密的数据。 对比翻译不同内容的表单数据,如下图: 对比上图表单数据可知,表单数

coffeetogether的博客 473

Python网络爬虫与文本挖掘

在互联网这个无边无际的信息海洋中,数据就像是散落各处的珍珠,而网络爬虫就是那双寻找宝藏的手。网络爬虫是一种自动获取网页信息的程序,它能按照一定的规则,在互联网上搜索和下载网页数据。如果你曾对某个网站上的信息感兴趣,却苦于手动复制粘贴的繁琐,那么网络爬虫将是你的救星。它可以帮你在短时间内收集大量的数据,无论是市场调研、学术研究还是日常兴趣爱好,都能从中获益。想象一下,当你想了解某个产品在不同电商平台上的价格变化时,如果一个个手动查找,不仅费时费力,而且效率低下。

master_chenchen的博客 2387

python爬虫进阶(MD5)

找到加密参数 pwd: e10adc3949ba59abbe56e057f20f883e 根据参数pwd进行搜索定位加密方法 点击进入,进行定位调试,如下 点击md5进入 在这里可以看到md5的加密方法啥的,然后就是找个环境扣下来运行,大概运行情况如下,结果可以看到其实和调用hashlib库得到的加密是一样的 以后遇到这种就直接使用第二个方法简单快捷就不用去逆向了 侵权立删 ...

qq_45664532的博客 1175

性格测试工具

一款相当实用的性格测试工具,能发现自己的性格优势,了解自己性格的不足,以便明确自己的定位,确定自己的发展方向,相当实用的一款小软件

ESP32+MAX7219二进制时钟设计与嵌入式时间映射实践

二进制时钟是嵌入式系统中数据表示与物理呈现深度耦合的典型范例,其核心在于将时间语义(年月日时分秒)解构为比特位,并通过LED点阵的空间权重布局实现直观识别。该设计依托RTC模块提供时间基准,依赖SPI协议完成微控制器与专用驱动芯片(如MAX7219)的可靠通信,涉及寄存器级配置、位图坐标变换、软硬件时序对齐等关键原理。技术价值体现在低资源占用下的高可读性人机交互,适用于教学演示、极客项目及嵌入式UI原型开发。本文聚焦ESP32平台在MicroPython环境下,结合MAX7219驱动8×8点阵实现高可靠性二

weixin_42160645的博客 301

python 爬虫案例:js逆向MD5加密

Python爬虫:js逆向,MD5加密

im_xiaodu的博客 1656

Excel中如何快速地将成绩按比例来划分为等级?

问题介绍: 记录说明:班级里共有40个人,按最终总平均成绩从高到低划分等级,A等级30%,B等级50%,C等级20%。 部分成绩如下表所示: Excel中相关函数介绍: IF函数 IF函数有三个参数,语法如下: =IF(条件判断, 结果为真返回值, 结果为假返回值) 第一参数是条件判断,比如说“A1=">37”这种,判断TRUE或FALSE。如果判断是TRUE(结果为真)那么IF函数返回值是第二参数,否则(结果为假)返回第三参数。 如果省略了第三参数,则当结果为假时,会返回FALSE。 如果公式

Wendy的博客 1万+

小白学 Python 爬虫(14):urllib 基础使用(四)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...

极客挖掘机 2172

Shopee滑块验证码太刁钻?手把手教你用Python+Playwright绕过弧形验证(附影刀RPA接入代码)

本文详细介绍了如何使用Python和Playwright结合SadCaptcha第三方服务高效破解Shopee平台的弧形滑块验证码,并集成到影刀RPA工作流中。该方案开发周期短、准确率高(>90%),特别适合跨境电商自动化操作,已在实际项目中验证成功。

weixin_29284657的博客 569

大白话讲解Numpy中什么是一维、二维、三维数组,以及5种创建方式

NumPy中提供了多种创建数组的方式,其中最基本的方式就是通过array()函数创建数组在使用该函数时直接传入列表或元组即可。 通过array()函数分别创建一维数组、二维组和三维数组,那么什么是维度呢?一维、二维、三维有什么区别? 1、什么是维度? 维度可以理解为描述数据的一种 “方向” 或者 “层次”。在数组中,维度的数量决定了我们需要用多少个索引来访问一个元素 2、一维、二维、三维的区别? (1)一维:一维数组就像是一条直线上排列的一组数据,例如: a = np.array([1, 2

1365

python url解析path_小白学 Python 爬虫(14):urllib 基础使用(四)

人生苦短,我用 Python如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:)前文传送门:小白学 Python 爬虫(1):开篇小白学 Python 爬虫(2):前置准备(一)基本类库的安装小白学 Python 爬虫(3):前置准备(二)Linux基础入门小白学 Python 爬虫(4):前置准备(三)Docker基础入门小白学 Python 爬...

weixin_35949153的博客 274

医学超声影像研究——从拒稿到录用:我的UMB投稿实战复盘

本文分享了作者将一篇关于超声影像中肿瘤传统分类方法的研究论文,从被其他期刊拒稿到最终被《Ultrasound in Medicine & Biology》录用的完整实战经验。文章详细复盘了心态调整、精准选刊、针对UMB期刊的稿件精修、投稿系统操作细节以及与审稿人有效沟通回复的全过程,为医学影像领域的科研工作者提供了宝贵的投稿策略与实操指南。

stem5的博客 493

python收取wss数据_小白学 Python 爬虫(14):urllib 基础使用(四)

人生苦短,我用 Python如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:)前文传送门:小白学 Python 爬虫(1):开篇小白学 Python 爬虫(2):前置准备(一)基本类库的安装小白学 Python 爬虫(3):前置准备(二)Linux基础入门小白学 Python 爬虫(4):前置准备(三)Docker基础入门小白学 Python 爬...

weixin_39609953的博客 758

WebUI自动化测试框架搭建(python+pytest+selenium+allure)

将鼠标移动到要定位的元素上面>右键>点击“检查”>在元素代码上右键>复制>复制XPath。

m0_63729339的博客 1281

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

孤寒者的博客 1万+

取最大值_零基础学 Python 爬虫(14):urllib 实战之爬取妹子图

人生苦短,我用 Python引言周末大晚上!!!!我知道你们肯定去嗨皮去了,快过年了,也越来越忙了,今后可能更的很慢,或者....不过放心,从头看到现在的小伙伴,学习Python的路还很长,保持初心,坚持学习,都会学有所报!刚更新完成的 urllib 基础内容太干了,跟牛肉干一样,咬着牙疼。今天稍微空一点,决定好好放浪一下形骸,写点不正经的内容。目标准备看了标题各位同学应该知道小编今天要干啥了,没...

weixin_39991055的博客 126

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

学习笔记(14):实用主义学Python-实操:使用线程给爬虫提速

本课程零基础的同学,以深入浅出的方式讲解Python的基本知识,此外课程中还是涉及自动化办公、网络爬虫、数据分析三个方面的实战开发,以实战为辅,让你在掌握Python语法后立即上手使用,加深你的理解,让你可以理解将所学知识用于实际的生活与工作中。 注意:本课程早鸟优惠价仅需29! 学完即可轻松应对工作中 99...

gjw_zhaoziji的博客 179

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python课程设计《网络爬虫-中国大学排名课程设计》

网络爬虫(又称为网页蜘蛛,网络机器人,在FOFA社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 网络爬虫应用智能自构造技术,随着不同主题的网站,可以自动分析构造URL去重。网络爬虫使用多线程技术,让爬虫具备更强大的抓取能力。对网络爬虫的连接网络设置连接及读取时间,避免无限制的等待。为了适应不同需求,使网络爬虫可以根据预先设定的主题实现对特定主题的爬取。研究网络爬虫的原理并实现爬虫的相关功能,并将爬去

qq_62100487的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

从入门到精通:网络爬虫开发实战总结

学习是一种持续不断的过程,无论在什么领域,都需要不断地努力和探索。在这段爬虫学习历程中,我不仅获得了丰富的知识和技能,也结交了很多志同道合的朋友和粉丝,他们对我的学习和进步都提供了极大的支持和鼓励,支持我继续写下去。 总的来说,这段时间的学习和写作让我认识到了自己的不足和缺陷,也让我更加坚定了继续学习和进步的决心。我相信,在未来的学习和工作中,这段经历将成为我前行的动力和支撑。在这里,我将过去写过的爬虫文章总结一下,不仅是在爬虫学习这里留下一个里程碑,也是为了能够总结一下阶段性学习成果。

weixin_50804299的博客 6560

实战|手把手教你用Python爬虫(附详细源码)

我们准备了一门非常系统的爬虫课程,除了为你提供一条清晰、无痛的学习路径,我们甄选了最实用的学习资源以及庞大的主流爬虫案例库。短时间的学习,你就能够很好地掌握爬虫这个技能,获取你想得到的数据。

大模型教程的博客 7万+

网络爬虫概论

第1章 爬虫的作用: 第2章 网页的三大特征: 第3章 爬虫的流程: 第4章 通用爬虫抓取网页的流程: 第5章 通用爬虫的缺点: 第6章 OSI七层协议: 第7章 常见的请求状态码: 第8章 发起请求: 第9章 使用urllib发起请求: 第10章 正则表达式:

但行好事,莫问前程 7291

14_网络爬虫

Scrapy:全功能的爬虫框架,提供完整的爬取、处理、存储流程PySpider:带Web界面的爬虫框架,适合管理多个爬虫:Scrapy与Splash(JavaScript渲染服务)的集成Crawlab:基于Golang的分布式爬虫管理平台,支持多种语言网页结构分析:了解HTML结构和使用开发者工具分析网页请求与响应:使用Requests库发送HTTP请求并获取响应数据提取:使用BeautifulSoup和XPath从HTML中提取数据动态网页爬取:使用Selenium控制浏览器获取动态内容。

qq_40263592的博客 1874

一步一步学网络爬虫(从python到scrapy)

大概花了一个星期的时间,学习了一下网络爬虫的知识,现在使用scrapy能爬一些基本的网页,图片,解决网页编码兼容问题,基础的模拟登陆。对于有些模拟登陆,由于其提交的表单要经过js进行处理后提交;更难的其网页也是经js渲染的,要学会一步步去分析,没有太多的去深入,但我会提到基本的分析方法。 参考文章: 1、http://www.runoob.com/ 一个很好的语言语法入门学习的网站,我主要用其

sunnyxiaohu的博客 3万+
上一篇: 一起学爬虫(Python) — 13
下一篇: 一起学爬虫(Python) — 15 进攻,有道翻译!
「已注销」
博客等级 码龄6年 1406粉丝 35原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值