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

浙公网安备 33010602011771号