python自学笔记(8)--Python简单爬虫从网站上下载图片和用第三方库request实现百度翻译
来源:互联网 发布:英雄在美国的票房数据 编辑:程序博客网 时间:2024/05/22 17:16
python自学笔记(8)--Python简单爬虫从网站上下载图片和用第三方库request实现百度翻译
直接贴代码,具体参见注释,主要用到了urllib这个包,需要说明的是urllib2模块只在python2中存在,到了python3之后就被改到urllib.request中去了,所以python3是没有urllib2这个模块的。
import urllib.requestimport urllib.responseimport retestUrl = "http://www.tooopen.com/view/779441.html"testReg = r'src="(http://.*?\.jpe?g)" alt'def get_html(url): response = urllib.request.urlopen(url) # urlopen返回一个类文件对象,可以像文件一样操作 ''' print("info: ") print(response.info())#返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息 print("code: ") print(response.getcode())#返回Http状态码。如果是http请求,200请求成功完成;404网址未找到 #一般在访问网站前判断网站是否可访问,4xx的错误一般是请求存在问题,一般是不可恢复的,5xx的问题一般是服务端存在问题,可以尝试重新下载 print("url: ") print(response.geturl())#返回请求的url ''' html = response.read() # read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样 # html用decode("utf-8")进行解码,由bytes变成string。 # py3的urlopen返回的不是string是bytes。 return html#返回的是stringdef getImage(reg, html): imgre = re.compile(reg)#re模块中包含一个重要函数是compile(pattern [, flags]) ,该函数根据包含的正则表达式的字符串创 # 建模式对象。可以实现更有效率的匹配。在直接使用字符串表示的正则表达式进行search,match和findall操作时, # python会将字符串转换为正则表达式对象。而使用compile完成一次转换之后,在每次使用模式的时候就不用重复转换。 #imageList = re.findall(reg, html)# 此方式没有对reg进行编译,所以应该会多次对reg转换,导致效率降低 imageList = imgre.findall(html)#以列表的形式返回能匹配的子串 print(imageList) count = 1 for image in imageList: resp = urllib.request.urlopen(image) respHtml = resp.read() with open(str(count) + '.jpg', 'wb') as f: f.write(respHtml) print("save: " + str(count) + '.jpg') count += 1;def test(): getImage(testReg, get_html(testUrl).decode("utf-8"))if __name__ == "__main__": test()
利用第三方库request实现百度翻译
第三方库的导入方法参考http://blog.csdn.net/qiannianguji01/article/details/50397046实现方法转载自https://www.cnblogs.com/yezhaodan/p/7452885.html,做了一点小修改。
import requestsdef translate(): url = 'http://fanyi.baidu.com/v2transapi/' print('----------感谢百度翻译,禁止用于商业用途----------') while True: content = input("Please confirm Chinese to (E)nglish,English to (C)hinese,or (Q)uit:\n") if content in ['Q','q','quit','Quit']: break; elif content in ['C']: content = input("请输入翻译内容\n") data = { 'from': 'en', 'to': 'zh', 'query': content, 'transtype': 'translang', 'simple_means_flag': '3', } elif content in ['E']: content = input("请输入翻译内容\n") data = { 'from': 'zh', 'to': 'en', 'query': content, 'transtype': 'translang', 'simple_means_flag': '3', } else: print("格式错误,请重新选择") continue headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/' + '35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0'} response = requests.post(url, data, headers = headers)#post请求数据 # head = response.headers # text = response.text # text = json.loads(text) # res = text['trans_result']['data'][0]['dst'] # print(res) # print(head['Content-Type']) print(response.json()['trans_result']['data'][0]['dst'])#requests中已经有了内置的函数,r.json(),无需引入json模块if __name__ == "__main__": translate()
阅读全文
0 0
- python自学笔记(8)--Python简单爬虫从网站上下载图片和用第三方库request实现百度翻译
- python 爬虫下载网站图片
- Python实现简单爬虫功能--批量下载百度贴吧里的图片
- python爬虫:下载百度贴吧图片学习笔记
- python 简单爬虫下载图片
- Python爬虫下载网站上的图片到本地
- python爬虫百度翻译
- python自学笔记(9)--《用python写网络爬虫》之网站背景调研
- Python第三方库下载
- python爬虫:下载百度贴吧图片(多页)学习笔记
- python 百度贴吧爬虫(下载图片)
- 【实用】Windows 下载 Python 第三方库的网站
- Python轻松入门-38 从网站上下载图片
- 用Python进行简单的爬虫(从Python百度百科中提取词条)
- Python request第三方库的安装
- python request第三方库介绍
- [python][爬虫]从网页中下载图片
- Python 百度爬虫图片
- 记一次android Bug解决的曲折心路历程(java.net.ProtocolException: expected 0 bytes but received 2048)
- 小学奥数思维训练题(十)
- Eclipse遇到的问题总结
- Android 语言切换的方法,华为、小米手机语言切换语言后部分页面会自动变为简体中文
- golang基础(golang压缩文件gzip)
- python自学笔记(8)--Python简单爬虫从网站上下载图片和用第三方库request实现百度翻译
- 2017秋招携程面试经验
- JVM调优之jstack找出最耗cpu的线程并定位代码
- 怎么设定目标(三)目标设定前的准备
- 图片拖动旋转缩放裁剪
- IntelliJ使用指南—— 导入Eclipse的Web项目
- BootStomp: 关于手机设备bootloader的安全 -- 6 BootStomp
- 前端开发部分知识点总结
- VIM操作--跳到最后一行和跳到最后一行的最后一个字符