爬虫
所谓爬虫就是在互联网上获有用的资源。
python如何访问互联网
python 中自带的电池也就是资源:
urllib = url(网页地址) + lib
获取一个网站
import urllib.request
response = urllib.request.urlopen(“http://www.baidu.com”)
html = response.read()
print(html)
从猫网站上获取一只猫片
import urllib.request
response = urllib.request.urlopen(‘http://placekitten.com/g/500/600’)
cat_img = response.read()
with open(‘cat_500_600.jpg’,‘wb’) as f:
f.write(cat_img)
也可以使用
req = urllib.request.Request(‘http://placekitten.com/g/500/600’)
response = urllib.request.urlopen(req)
cat_img = response.read()
with open(‘cat_500_600.jpg’,‘wb’) as f:
f.write(cat_img)
获取访问的地址
response.geturl()
或者
response.info()返回的是一个http对象
print(response.info())打印出来
从有道词典中获取翻译功能
进入翻译功能
1.审查元素,检查:进入ww.youdao.com 右键可以看到审查元素或检查,看到网页源码,选则Network模块.在上层选择框右键打开method工具栏。
可以看到两种功能
1是GET GET是从服务器请求获得数据
2是POST POST是向指定服务器提交被处理的数据
点开POST对应的框 再点击pre出现数据
再点开header可以看到
其中Request URL才是翻译地址
REQUEST MODE表示请求方法
Status Code 200 OK表示正常响应 404就是页面不见了
Request Headers 常被服务器用来判断非人类访问
User Agent可以看到 如果是用代码 就会显示出python就会被识别到。
代码实现
import urllib.request
import urllib.parse
import json
content = input("请输入需要翻译的内容:")
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '15858821394325'
data['sign'] = 'ad9a0f2d4825e880a50ec3c92d77dd45'
data['ts'] = '1585882139432'
data['bv'] = 'b396e111b686137a6ec711ea651ad37c'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
#(data 为字典其中包含的是from data中的成员)
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
target = json.loads(html)
print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))