两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. 網(wǎng)頁分析

        首先要選擇一個(gè)翻譯網(wǎng)站,在這里我們選擇有道翻譯,進(jìn)入網(wǎng)站:

        http://fanyi.youdao.com/

python翻譯器4

        然后檢查元素,這里我們直接在network中可能找不到相應(yīng)信息,我們?cè)谳斎肟蛑休斎腚S機(jī)內(nèi)容,然后點(diǎn)擊翻譯,這時(shí)就會(huì)發(fā)生變化。

python翻譯器5

        找到左邊這個(gè)文件,查看其中的Headers內(nèi)容,這個(gè)URL就是我們解析時(shí)候需要用到的網(wǎng)址:

        http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule

        注意在使用這個(gè)url的時(shí)候把_o給刪除掉,不然會(huì)影響程序的運(yùn)行,然后往下拉,這些為我們需要使用到的data信息。

python翻譯器6

        防止網(wǎng)頁對(duì)機(jī)器人的屏蔽,我們可以模擬瀏覽器進(jìn)行訪問,找到相應(yīng)內(nèi)容添加到代碼中。

python翻譯器7

        最后再點(diǎn)擊Headers旁邊的preview,我們可以看到輸入的爬蟲內(nèi)容與它的翻譯結(jié)果被放到了一個(gè)字典當(dāng)中,我們最后再讀取這個(gè)內(nèi)容即可。

python翻譯器8

2. 完整代碼

import urllib.request  # 導(dǎo)入模塊
import urllib.parse
import json
class Trs:
    def __init__(self):
        url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
        content = input("翻譯內(nèi)容:")
        data = {}
        data['i'] = content
        data['from'] = 'AUTO'
        data['to'] = 'AUTO'
        data['smartresult'] = 'dict'
        data['client'] = 'fanyideskweb'
        data['salt'] = '15823411455528'
        data['sign'] = 'd03024a90896a5eb31a74a9344657b0e'
        data['doctype'] = 'json'
        data['version'] = '2.1'
        data['keyfrom'] = 'fanyi.web'
        data['action'] = 'FY_BY_REALTlME'
        data = urllib.parse.urlencode(data).encode('utf-8')
        r = urllib.request.Request(url, data)
        r.add_header('User-Agent',
                       'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/
                       537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 
                       Safari/537.36')
        response = urllib.request.urlopen(r)
        html = response.read().decode('utf-8')
        trs = json.loads(html)
        result  = trs['translateResult'][0][0]['tgt']
        print("翻譯結(jié)果:",result)
if __name__ == "__main__":
    a = Trs()

3. 代碼分析

        我們使用了前面我們看到的data參數(shù),創(chuàng)建一個(gè)字典來存放這些data數(shù)據(jù),然后發(fā)送請(qǐng)求的時(shí)候使用data參數(shù),然后把相應(yīng)的內(nèi)容與我們?cè)诰W(wǎng)頁中看到的一一對(duì)應(yīng),再模擬瀏覽器訪問,我們可以通過print來輸出一下返回的json字符。

trs = json.loads(html)
print(trs)
result  = trs['translateResult'][0][0]['tgt']
print("翻譯結(jié)果:",result)

        輸出結(jié)果為:

        翻譯內(nèi)容:爬蟲

{'type': 'ZH_CN2EN', 'errorCode': 0, 'elapsedTime': 2, 'translateResult': [[{'src': '爬蟲', 'tgt': 
'The crawler'}]]}
翻譯結(jié)果: The crawler

        也就是輸出為一個(gè)字典,我們想要獲取的內(nèi)容存放在一個(gè)二維列表當(dāng)中,我們通過訪問其索引值的方式找到它就可。

trs['translateResult'][0][0]['tgt']

        我們?cè)偻ㄟ^幾次測(cè)試來看一下輸出結(jié)果:

翻譯內(nèi)容:惟沉默是最高的輕蔑{'type': 'ZH_CN2EN', 'errorCode': 0, 'elapsedTime': 18, 'translateResult': 
[[{'src': '惟沉默是最高的輕蔑', 'tgt': 'But silence is supreme contempt'}]]}
翻譯結(jié)果: But silence is supreme contempt
翻譯內(nèi)容:其實(shí)地上本沒有路,走的人多了,也便成了路
{'type': 'ZH_CN2EN', 'errorCode': 0, 'elapsedTime': 20, 'translateResult': [[{'src': '其實(shí)地上本沒有
路,走的人多了,也便成了路', 'tgt': 'Actually the earth had no road, walk of person many, also 
then became road'}]]}
翻譯結(jié)果: Actually the earth had no road, walk of person many, also then became road

        如果我們輸入的語句分開的時(shí)候:

翻譯內(nèi)容:勇者憤怒,抽刃向更強(qiáng)者;怯者憤怒,卻抽刃向更弱者
{'type': 'ZH_CN2EN', 'errorCode': 0, 'elapsedTime': 2, 'translateResult': [[{'src': '勇者憤怒,抽刃向
更強(qiáng)者;', 'tgt': 'A brave man angry, blade to more strong;'}, {'src': '怯者憤怒,卻抽刃向更弱者'
, 'tgt': 'Afraid of anger, but blade to a weak one'}]]}
翻譯結(jié)果: A brave man angry, blade to more strong;

        這樣的語句被分成了兩句,我們就需要更改輸出信息來完成翻譯,代碼如下:

result1  = trs['translateResult'][0][0]['tgt']
result2 = trs['translateResult'][0][1]['tgt']
print("翻譯結(jié)果:",result1+result2)

        輸出結(jié)果為:

翻譯內(nèi)容:勇者憤怒,抽刃向更強(qiáng)者;怯者憤怒,卻抽刃向更弱者
{'type': 'ZH_CN2EN', 'errorCode': 0, 'elapsedTime': 1, 'translateResult': [[{'src': '勇者憤怒,抽刃
向更強(qiáng)者;
', 'tgt': 'A brave man angry, blade to more strong;'}, {'src': '怯者憤怒,卻抽刃向更弱者', 'tgt':
 'Afraid of
 anger, but blade to a weak one'}]]}
翻譯結(jié)果: A brave man angry, blade to more strong;Afraid of anger, but blade to a weak one

4. 總結(jié)

        本節(jié)我們主要學(xué)習(xí)了如何去爬取一些翻譯來的內(nèi)容,這是一個(gè)比較經(jīng)典的爬蟲入門題目,在使用爬蟲的過程中要掌握的就是如何去從網(wǎng)頁源碼中找到我們需要的信息,把這一點(diǎn)掌握熟練之后可以進(jìn)行更深層次的爬蟲項(xiàng)目,下一節(jié)我們把這兩節(jié)的內(nèi)容通過事件管理結(jié)合在一起來完成我們的簡單翻譯器。


點(diǎn)贊(1)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)