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 @   澳大利亚树袋熊  阅读(49)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示