python爬虫1

1、可以查看帮助文档

#爬虫使用urllib,它是一个包,包含了4个模块:urllib.request  urllib.error  urllib.parse  urllib.robotparser
#最重要的是urllib.request:for reading and opening URLs

import urllib.request
response=urllib.request.urlopen('http://www.Fishc.com') #访问网页的函数,其实它有多个参数
html=response.read()
print(html)

2、下面进行一幅图片的爬取

import urllib.request
response=urllib.request.urlopen('http://placekitten.com/g/500/600')
cat=response.read()

with open('cat.jpg','wb') as f: #with as 结构进行文件关闭与异常处理。
    #这里的cat.jpg没有路径,则表示放在于该程序文件的同一目录下方
    f.write(cat)

3、利用有道翻译对文本进行翻译

#下面通过有道词典对文本进行翻译
import urllib.request
import urllib.parse  # parse库,(解析),用于解析url。用于使用urllib.parse.urlencode函数

#找到有道翻译网页,输入'hello'进行翻译,右击选择“查看元素”,在“网络”,“消息头”,“表单数据”中进行选择
url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data={}#字典格式
#下面对字典进行初始化,将“表单数据”用字符形式存储在字典中
data['i']='hello'
data['from']='AUTO'
data['to']='AUTO'
data['smartresult']='dict'
data['client']='fanyideskweb'
data['salt']='15636742003312'
data['sign']='1c67f6ad04603cf424367d33bebe8b8c'
data['ts']='1563674200331'
data['bv']='e2a78ed30c66e16a857c5b6486a1d326'
data['doctype']='json'
data['version']='2.1'
data['keyfrom']='fanyi.web'
data['action']='FY_BY_CLICKBUTTION'

# urllib.parse.urlencode(data) 用于将data转换为特定的格式
data=urllib.parse.urlencode(data).encode('utf-8') #把Unicode形式变成utf-8形式。这里'utf-8'为编码方式,python默认是unicode形式,utf-8是Unicode的一种编码方式
response=urllib.request.urlopen(url,data)#urlopen函数中,data参数有两种格式,默认为GET格式,如果赋值,则为POST格式
html=response.read().decode('utf-8')   #decode解码,即把其他编码形式变成Unicode形式。

print(html)#输出为:{"type":"EN2ZH_CN","errorCode":0,"elapsedTime":1,"translateResult":[[{"src":"hello","tgt":"你好"}]]}
#这是json格式,一种轻量级的数据交换格式,前面导入json模块

4、上面的输出很不人性化,且无法对不同的内容进行翻译,下面进行优化

#下面进行优化:

import urllib.request
import urllib.parse  
import json

wait_trans=input('请输入需要翻译的内容:')

url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data={}

data['i']=wait_trans  #这里‘i’为需要翻译的内容。注意不要写成字符串格式
data['from']='AUTO'
data['to']='AUTO'
data['smartresult']='dict'
data['client']='fanyideskweb'
data['salt']='15636742003312'
data['sign']='1c67f6ad04603cf424367d33bebe8b8c'
data['ts']='1563674200331'
data['bv']='e2a78ed30c66e16a857c5b6486a1d326'
data['doctype']='json'
data['version']='2.1'
data['keyfrom']='fanyi.web'
data['action']='FY_BY_CLICKBUTTION'

data=urllib.parse.urlencode(data).encode('utf-8') 
response=urllib.request.urlopen(url,data)
html=response.read().decode('utf-8')  

json_1=json.loads(html)
print(json_1["translateResult"][0][0]['tgt'])#这里为将原来的json格式的字典进行剖析,它的字典的key: translateResult中,又包含了两层列表和一层字典
'''
运行如下:
请输入需要翻译的内容:我今天很高兴
I'm very happy today
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值