用Python写一个命令行火车票查看器

目录 Python

本文详细解释了昨天推荐的 iquery 库的详细设计,由原作者 protream 授权编程派发布。文中所列代码并不完整,请查看Github项目主页。

当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息!如果你刚掌握了Python基础,这将是个不错的小练习。
继续阅读 “用Python写一个命令行火车票查看器”

Python在金融,数据分析,和人工智能中的应用

目录 Python

Python最近取得这样的成功,而且未来似乎还会继续下去,这有许多原因。其中包括它的语法、Python开发人员可用的科学生态系统和数据分析库、易于和几乎所有其它技术集成,以及其开源地位。——来自Yves Hilpisch的Python金融大数据分析(姚军译)。

自从1991它出现在编程场景中,比于其他编程语言,Python取得了少有的地位。面向对象,容易学习,使用语法,以及由此产生的低维护成本,是Python持续获得好评的一部分原因。开源是一个很明显的优势,跨平台的有效性,多目标,垃圾回收(自动的),代码的简洁性,以及整齐的缩进是Python其他的显著的特点。
继续阅读 “Python在金融,数据分析,和人工智能中的应用”

Python爬虫常用模块,BeautifulSoup笔记

目录 Python

import urllib

import urllib.request as request

import re

from bs4 import *

#url = ‘http://zh.house.qq.com/’

url = ‘http://www.0756fang.com/’

html = request.urlopen(url).read().decode(‘utf-8’)

soup = BeautifulSoup(html,”html.parser”)

print(soup.head.meta[‘content’])#输出所得标签的‘’属性值

print(soup.span.string);print(soup.span.text)#两个效果一样,返回标签的text

#name属性是‘’的标签的<ResultSet>类,是一个由<Tag>组成的list

print(soup.find_all(attrs={‘name’:’keywords’}))

print(soup.find_all(class_=’site_name’))#class属性是‘’的<Tag>的list,即<ResultSet>

print(soup.find_all(class_=’site_name’)[0])#这是一个<Tag>

print(soup.find(attrs={‘name’:’keywords’}))#name属性是‘’的标签的<Tag>类

print(soup.find(‘meta’,attrs={‘name’:’keywords’}))#name属性是‘’的meta标签的<Tag>类

print(soup.find(‘meta’,attrs={‘name’:’keywords’})[‘content’])#<Tag类>可直接查属性值

#配合re模块使用,可以忽略大小写

#如下面例子,可以找到name属性为keywords,KEYWORDS,KeyWORds等的meta标签

print(soup.find(‘meta’,attrs={‘name’:re.compile(‘keywords’,re.IGNORECASE)}))

”’————————————————————————-”’

”’—————————-修改BeautifulSoup——————————-”’

”’————————————————————————-”’

soup.find(attrs={‘name’:’keywords’}).extract#调用这个方法,可以删除这一个标签

soup.title.name=’ppp’#可以把Tag的名字<title>改成<ppp>

#可以使用append(),insert(),insert_after()或者insert_before()等方法来对新标签进行插入。

Tag1 = a.new_tag(‘li’,class_=’123′)”’创造一个Tag”’

a.title.append(Tag1)#把Tag1添加为name是title的Tag的最后一个【子节点】,没有换行

#.insert(0,Tag1)—-这里用insert的话,第一个参数可以控制所添加【子节点】的先后位置

#.insert_after(Tag1)—和insert_before一样,添加为Title的【兄弟节点】

soup.head.meta[‘content’]=’随便输入,可以添加(或更改)这个Tag的content属性(值)’

del soup.head.meta[‘content’]#这个语法可以直接删除这个Tag的content属性

soup.li.clear#调用方法会清除所有li标签的text

soup.title.string=’用这个方法可以修改title标签的内容’#慎用,只用于最子孙最小的节点,用于父节点会清空子节点

soup.div.append(‘放在div子节点位置的 最后append最后,是标签内容’)

soup.div.insert(0,’放在div子节点位置的 最前insert【0】最前,是标签内容”)

利用Python对PDF文件做OCR识别

目录 Python

Hi朋友们!你们可能听说过使用Python进行OCR识别操作。在Python中,最出名的库便是Google所资助的tesseract。利用tesseract可以很轻松地对图像进行识别。现在问题来了,如果想对一个PDF文档进行OCR识别,该怎么做呢?

我现在所从事的一个项目,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中。为此,我找寻了很久的解决方案,最终才确定使用tesseract。所以不要浪费时间了,我们开始吧。
继续阅读 “利用Python对PDF文件做OCR识别”

四款后起编程语言能否成功挑战Python的王者地位

目录 Python

四款后起编程语言能否成功挑战Python的王者地位

王权没有永恒,编程语言自然也不例外。作为当前雄踞各大语言人气榜冠军的Python,其似乎也面临着同样的挑战。不过各类后起之秀也都凭借着自身设计证明,Python所拥有的编程便捷性、强大的数学与科学运算能力以及庞大的第三方库正是一款优秀语言所必须具备的特质,而并非“加分项”。
继续阅读 “四款后起编程语言能否成功挑战Python的王者地位”