㈠ python有哪些技术上的优点比其他语言好在哪儿
Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:Python极其容易上手,因为Python有极其简单的说明文档。
易读、易维护:风格清晰划一、强制缩进
用途广泛
速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。
免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
㈡ 如何用python写爬虫来获取网页中所有的文章以及关键词
所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。
类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端, 然后读取服务器端的响应资源。
在Python中,我们使用urllib2这个组件来抓取网页。
urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。
它以urlopen函数的形式提供了一个非常简单的接口。
最简单的urllib2的应用代码只需要四行。
我们新建一个文件urllib2_test01.py来感受一下urllib2的作用:
import urllib2
response = urllib2.urlopen('http://www..com/')
html = response.read()
print html
按下F5可以看到运行的结果:
我们可以打开网络主页,右击,选择查看源代码(火狐OR谷歌浏览器均可),会发现也是完全一样的内容。
也就是说,上面这四行代码将我们访问网络时浏览器收到的代码们全部打印了出来。
这就是一个最简单的urllib2的例子。
除了"http:",URL同样可以使用"ftp:","file:"等等来替代。
HTTP是基于请求和应答机制的:
客户端提出请求,服务端提供应答。
urllib2用一个Request对象来映射你提出的HTTP请求。
在它最简单的使用形式中你将用你要请求的地址创建一个Request对象,
通过调用urlopen并传入Request对象,将返回一个相关请求response对象,
这个应答对象如同一个文件对象,所以你可以在Response中调用.read()。
我们新建一个文件urllib2_test02.py来感受一下:
import urllib2
req = urllib2.Request('http://www..com')
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
可以看到输出的内容和test01是一样的。
urllib2使用相同的接口处理所有的URL头。例如你可以像下面那样创建一个ftp请求。
req = urllib2.Request('ftp://example.com/')
在HTTP请求时,允许你做额外的两件事。
1.发送data表单数据
这个内容相信做过Web端的都不会陌生,
有时候你希望发送一些数据到URL(通常URL与CGI[通用网关接口]脚本,或其他WEB应用程序挂接)。
在HTTP中,这个经常使用熟知的POST请求发送。
这个通常在你提交一个HTML表单时由你的浏览器来做。
并不是所有的POSTs都来源于表单,你能够使用POST提交任意的数据到你自己的程序。
一般的HTML表单,data需要编码成标准形式。然后做为data参数传到Request对象。
编码工作使用urllib的函数而非urllib2。
我们新建一个文件urllib2_test03.py来感受一下:
import urllib
import urllib2
url = 'http://www.someserver.com/register.cgi'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
data = urllib.urlencode(values) # 编码工作
req = urllib2.Request(url, data) # 发送请求同时传data表单
response = urllib2.urlopen(req) #接受反馈的信息
the_page = response.read() #读取反馈的内容
如果没有传送data参数,urllib2使用GET方式的请求。
GET和POST请求的不同之处是POST请求通常有"副作用",
它们会由于某种途径改变系统状态(例如提交成堆垃圾到你的门口)。
Data同样可以通过在Get请求的URL本身上面编码来传送。
import urllib2
import urllib
data = {}
data['name'] = 'WHY'
data['location'] = 'SDU'
data['language'] = 'Python'
url_values = urllib.urlencode(data)
print url_values
name=Somebody+Here&language=Python&location=Northampton
url = 'http://www.example.com/example.cgi'
full_url = url + '?' + url_values
data = urllib2.open(full_url)
这样就实现了Data数据的Get传送。
2.设置Headers到http请求
有一些站点不喜欢被程序(非人为访问)访问,或者发送不同版本的内容到不同的浏览器。
默认的urllib2把自己作为“Python-urllib/x.y”(x和y是Python主版本和次版本号,例如Python-urllib/2.7),
这个身份可能会让站点迷惑,或者干脆不工作。
浏览器确认自己身份是通过User-Agent头,当你创建了一个请求对象,你可以给他一个包含头数据的字典。
下面的例子发送跟上面一样的内容,但把自身模拟成Internet Explorer。
(多谢大家的提醒,现在这个Demo已经不可用了,不过原理还是那样的)。
import urllib
import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
headers = { 'User-Agent' : user_agent }
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()
以上就是python利用urllib2通过指定的URL抓取网页内容的全部内容,非常简单吧,希望对大家能有所帮助。
㈢ 如何在Apache下设置Python
关于Python,本人不想多说了,如果不知道什么是Python,可以看《什么是Python?》一文。Python可以开发CGI程序,那么在Apache下应如何配置呢?本文只讲述了如何以CGI方式配置Apache,使其支持Python程序。其它方式,如mod_python则不在讨论范围(其实是没配成功:-)。我所使用的系统环境为Windows 98, Apache 1.3.19,Python 2.1版。
准备
首先检查以下要求是否已经达到:
Apache已经安装,并且可以正常使用
Python已经安装,并且可以正常使用(在我的环境下,Python安装目录为d:\python21)
好,如果一切正常,下面就开始了。
配置
修改DocumentRoot
打开Apache安装目录下的conf子目录的httpd.conf文件。可以修改DocumentRoot为"f:/phpsite"。当然你可以按需要改成其它值。
允许任意目录执行CGI
这个设置是允许被设目录及其子目录下的CGI程序可以CGI方式运行。在Apache中,尽管你可能已经设置了CGI文件后缀,但是如果未设置允许CGI程序运行选项,则无法运行CGI程序。
设置f:/phpsite目录属性:
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
其实我并未重新设置新的目录属性,而是将DocumentRoot的目录属性(原来指向Apache安装目录下的htdocs目录,我改成为f:/phpsite了)增加了ExecCGI一项。
只允许特别目录执行CGI
也可以只允许特别目录下可以执行CGI程序。与上一步可以同时执行,也可两种任选其一。只要设置:
ScriptAlias /cgi-bin/ "f:/phpsite/cgi-bin/"
即可。
增加CGI文件名后缀
修改 AddHandler cgi-script 一句为 AddHandler cgi-script .cgi .py。即让Apache知道.py的文件为CGI程序
好了,到此Apache就配置好了,先启动Apache,然后进行测试。
测试
Python本身不象PHP,不是一种嵌入式脚本(这种脚本比较适合做Web后端程序),所以所有输出要自已做。
1 #!d:/python21/python.exe
2 print "Content-type: text/html"
3 print
4 print "
hello,world!
"
第1行是让脚本以CGI方式运行必需的(这里是我的环境,记得吗?我前面说了Python是装在d:/python21下的),告诉Apache如何找到此文件的解释程序。
第2,3行是告诉浏览器输出内容的MIME格式。这里为输出HTML文本。
第4行,输出"hello,world!"。其实不输出HTML的标记头浏览器也可以正常显示,尽管它不是完整的HTML格式。
如果测试成功,则一切大功告成。如果不行,听天由命吧(可以给我发信,咱们共同解决)。
后话
在SourceForge网站上,有一个名字mod_snake的项目。它同mod_python一样提供了针对Apache的Python模块化处理,但是mod_snake支持HTML文档嵌入Python标记,有点象PHP。不过现在它只支持Linux,而没有Windows下的版本。唉,我一定要转到Linux下面去!使用CGI方式调用Python速度不是很快,而如果使用mod_python则速度可能要快几十倍。这个不是我测出来的,是mod_python网站上说的。
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
㈣ Python 制作网页打不开 直接跳到打开或者保存文件
需要对Lighttpd进行配置,指明py文件是作为cgi程序运行的。
修改配置文件:/etc/lighttpd/lighttpd.conf
在以下小节内添加python内容:
server.moles = ( "mod_cgi", )
cgi.assign = (
".py" => "/usr/bin/python"
)
㈤ python如何提取双引号中间的内容
正则表达式中匹配引号可以直接写入 ";匹配任意内容,可以用.*表示,.表示为任意字符,*表示为任意长度;进一步可以使用圆括号提取引号之间的内容。
服务器:在进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序。
所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。CGI文件的扩展名为.cgi,python也可以使用.py扩展名。
(5)pythoncgi程序扩展阅读:
如果需要安装, 不妨下载最近稳定的版本。 就是那个以没有被标记作为alpha或Beta发行的最高的版本。目前最稳定的版本是Python3.0以上:
如果使用的操作系统是Windows:当前最稳定的Windows版本下载是"Python 3.8.1 for Windows"
如果使用的是Mac,MacOS 10.2 (Jaguar), 10.3 (Panther) and 10.4 (Tiger)已经集成安装了Python,但是大概需要安装最近通用的构架(build)。
对于Red Hat,安装python2和python2-devel包,对于Debian,安装python2.5和python2.5-dev包。
㈥ 能不能做一个html页面,然后按钮的功能用python实现
你好 可以的,不过你需要会javascript和AJAX,AJAX可以在不刷新网页的情况下把数据传给后端,你可以通过HTML来定义按钮,然后通过javascript定义按钮事件,然后通过AJAX把数据传给后端,后端用Python处理后在把数据传给前端,如果你对javascript还不是太熟练的话可以使用jQuery这个javascript库,jQuery简化了很多原生javascript复杂的部分。不过如果你需要的功能能在前端实现的话就尽量不要让后端来作,除非是必须要提交数据给后端处理,因为每次提交数据给后端都要耗费一定的时间,如果遇上网络不好的情况体验会比较差。希望我的回答能够帮助到你,如果还有什么疑问可以继续追问。