python网络爬虫(一)

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

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

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

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

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}')

原作者:爬虫实现有道翻译(超详细) - 知乎 (zhihu.com)

快速转字典:【转载】pycharm请求头一键转换为字典 - 简书 (jianshu.com)

posted @ 2022-12-26 11:07  澳大利亚树袋熊  阅读(58)  评论(0)    收藏  举报