爬虫学习问题
由于等级不够,不能发图片,所以我就文件描述我的问题了。问题如下:
观看第一版python爬虫学习的”P55 论一只爬虫的自我修养2:实战“中的9分34秒,小甲鱼获取有道翻译的preview那里,翻译结果是一个列表的形式存储。
但是我在实践时(2022.12.7),有道翻译的preview部分中显示的是字符串(在有道翻译的网站上是字符串,在IDLE中输出也是字符串,而且我用type()验证了也是str的结果。)
问:如何提取上述提到的字符串的含义,让其转化成翻译结果呢?(我也不知道这样问对不对,但是我能想到的就这,刚开始学习python,大佬勿怪)
还有一点就是:
我发现:
2022.12.7的有道翻译网页上,form data的里面有i(对应的是用户输入的待翻译的内容,这个我知道),但是下面还有sign(这个好像是会随着i的变化而变化),是不是说明要获取sign与i的对应关系才能写爬虫(如果是按照”P55 论一只爬虫的自我修养2:实战”的思路)。
发一下你的代码吧,一起看一下。 preview的问题可以看下这篇文章:https://fishc.com.cn/forum.php?mod=viewthread&tid=140574&highlight=preview 代码如下:
import urllib.request
import urllib.parse
#import json
content = input('请输入待翻译的内容:')
“reversed(lru)”‘=’'这个就是有道翻译的url''上传的时候说我没有上传url的权限,所以我就在前面改了一下,这一句是正常的'
data={}
data['i']='不好'
data['from']='auto'
data['to']=' '
data['dictResult']='true'
data['keyid']='webfanyi'
data['sign']='89e97c6896499a9841da29cb037b669a'
data['client']='fanyideskweb'
data['product']='webfanyi'
data['appVersion']='1.0.0'
data['vendor']='web'
data['pointParam']='client,mysticTime,product'
data['mysticTime']='1670417887297'
data['keyfrom']='fanyi.web'
data=urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.175.400 QQBrowser/11.1.5155.400')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
#target = json.loads(html)
#target = target['translateResult']['tgt']
print(html)
输出结果如下:
请输入待翻译的内容:你好
eh6zVNeFZ0TD1ei8mSABcQ==
请输入待翻译的内容:吃饭了吗
eh6zVNeFZ0TD1ei8mSABcQ==
输出结果一样是因为data是没有改变的吗?
import urllib.request
import urllib.parse
#import json
content = input('请输入待翻译的内容:')
“reversed(lru)”‘=’'这个就是有道翻译的url''上传的时候说我没有上传url的权限,所以我就在前面改了一下,这一句是正常的'
data={}
data['i']='不好'
data['from']='auto'
data['to']=' '
data['dictResult']='true'
data['keyid']='webfanyi'
data['sign']='89e97c6896499a9841da29cb037b669a'
data['client']='fanyideskweb'
data['product']='webfanyi'
data['appVersion']='1.0.0'
data['vendor']='web'
data['pointParam']='client,mysticTime,product'
data['mysticTime']='1670417887297'
data['keyfrom']='fanyi.web'
data=urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.175.400 QQBrowser/11.1.5155.400')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
#target = json.loads(html)
#target = target['translateResult']['tgt']
print(html)
猪猪以都都 发表于 2022-12-8 09:11
这是什么意思?
url发一下啊 suchocolate 发表于 2022-12-8 10:40
url发一下啊
##https
://dict.youdao.com/webtranslate###
奇恒之腑 发表于 2022-12-8 10:57
##https
://dict.youdao.com/webtranslate###
就上面的加上下面的,没有##,论坛说我没有权限发url
https://zhuanlan.zhihu.com/p/493623845
还是用requests吧 输出结果一样是因为data['i']一直等于‘不好’
应该是data['i']=content 我疑惑的地方在这里:
那个知乎链接里面的internet操作我会,但是现在的有道翻译preview那里已经不是可以明显看出翻译内容的字典了,而是一行长的代码(如下)。
Z21kD9ZK1ke6ugku2ccWu4n6eLnvoDT0YgGi0y3g-v0B9sYqg8L9D6UERNozYOHqnYdl2efZNyM6Trc_xS-zKtfTK4hb6JP8XwCzNh0avc8qItQUiIU_4wKKXJlIpvMvfKvJaaZzaX6VEtpkr2FdkfoT_Jgbm2GRSVj3r40autIdlImENG8hC0ZH4ww7utwuTt3Oo_ZpXg0BSq9wePSAB75-ChkiGKF9HTIPeCl2bl84SBD1XDfFCZpkKQhecYSs0JLoXOqP2ltavxRrg58Hp1q5uIgZZ_Oo2-Jmd-t1r4es40drcAq5bjmS62M2VJF8D6ojtOh9JTfNwgzD3CxYn-Pd7-TgHMyNEJEkFXTAyxzpjlFqtrCYDE3SZUYlENkqsL8Wrra1hM-1n TfiB-BLcWAdRBynNpP5_54aq_-GBsq8bB_9yEX5ovzDB4_Ry_spVVuUnb39iplMHCdCnjOD3ngiIDbl9SUz-9n pjBX05ZYRdPmFPAl424qdoaxeVqnVoH8jQFPZVqaHMzu4mJg0SICDWFH7GP1zqGRbXd3ESjT_iBInl3gICt2XVuhh_nubcELkTEC6xbqEDRQkPUNMpzXJHjcvsLHtcmSW0S9F0445ho9kT2qZYdMBC3Fs0OaHpUtFu77gZpQn7sGiqh8VliXIcUtfvvop-1 c-Vu5QjfUbLn2-s5POR9fGYG6rt6ioe_PGmwWj-Cc00zUM7FybfarKTr4D3Rk57R72qpXN4Ja86ZsCAMmDG-m5z31RQh_V7echJ8Kna3Go3yWKCK4vtSwOWrFhiS5RTz6EkrGc3SkFKbb5vp8Wop_84myBtgnBmj4CczhTq2HcOxrJf4def6yDt2uBxyv4bTVGx9Yx3uB4Gx0iK5kYvfma6B_LnkRWk331wjuXKQtBGYIuWkR8J5QtvBmIRVaa7AA19Z4xMIEAqbcuQ5p4I9FCElthBrJd9YOcouHK4U27xxYWJJXcJoTvzG7zWtiV76fHDeQLgAWvJJ7ww4NFgjhqc6AKA_2afxa4c_lAvVZgFuKL3XSCL7PfKxp6GhjcGKeSRr80PT1gfFw2xi8X4ejjNm_prsUZ
这个代码看不出来那里是要翻译的结果和内容,不像之前是字典,很明显里面就包含着你想翻译的内容,比如说想翻译你好,在网页输入‘你好’后,之前的preview会显示含有‘你好’的字典。现在没有,只有上面那个长代码。
这才是我疑惑的地方,怎么找到像翻译的内容在那里?
页:
[1]