Python·爬虫技术的实现

Python

⑴作为初学python的科班出身的小白,python非常简单,非常适合人类阅读。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
  ⑵易学。python虽然是用c语言写的,但是它摈弃了c中非常复杂的指针,简化了python的语法。
  ⑶Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。Python希望看到一个更加优秀的人创造并经常改进。
  ⑷可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!
   ⑸在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
   ⑹Python既支持面向过程的函数编程也支持面向对象的抽象编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
   ⑺ 可扩展性和可嵌入性。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
  ⑻丰富的库。Python标准库确实很庞大。python有可定义的第三方库可以使用。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
   ⑼ Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。
   ⑽规范的代码。Python采用强制缩进的方式使得代码具有极佳的可读性。

爬虫技术

爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

直接上代码

这个实现了3个
(1)查看IP地址的来源(2)翻译(3)看猫

直接代码:

import urllib.request
 import urllib.parse
 import json
 def cat():
 catSizeW = input(‘输入宽:\n’);
 catSizeH = input(‘输入高:\n’);
 response = urllib.request.urlopen(‘http://placekitten.com/’+catSizeW+"/"+catSizeH);
 img = response.read()
 with open(‘mycat.jpg’,‘wb’) as f:
 f.write(img)
 def ip():
 url = ‘https://www.ip.cn/?ip=’
 myip = str(input(“输入ip地址:\n”))
 url = url + myip
 head = {}
 head[‘User-Agent’] = ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’
 rep = urllib.request.Request(url, headers=head)
 result = urllib.request.urlopen(rep)
 html = result.read().decode(‘utf-8’)
 begin = html.find(“您查询的 IP”)+14
 end = html.find("</",begin)
 print(“IP:”+html[begin:end])
 begin = html.find(“所在地理位置”)+13
 end = html.find("</", begin)
 print(“位置:”+html[begin:end])
 def fy():
 myword = input(“输入翻译内容:\n”)
 url=‘http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule’
 head={}
 head[‘User-Agent’]=‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’
 data={}
 data[‘i’]= myword
 data[‘doctype’]= ‘json’
 data = urllib.parse.urlencode(data).encode(‘utf-8’)
 rep = urllib.request.Request(url, data, head)
 ‘’’
 #response = urllib.request.urlopen(url, data)
 ‘’’
 response = urllib.request.urlopen(rep)
 html = response.read().decode(‘utf-8’)
 html =json.loads(html)
 print(html[‘translateResult’][0][0][‘tgt’])
 while True:
 print(“1.看猫图”);
 print(“2.查看ip地址来源”);
 print(“3.翻译”);
 i = int(input(""));
 if i == 1:
 cat();
 elif i == 2:
 ip();
 elif i == 3:
 fy();
 else :
 print(“input error”);

各位大哥哥大姐姐,要是你看的还满意,点个赞咯。