爬虫入门【8】Python连接MongoDB的用法简介

MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展。包含数据库,集合,文档等几个重要概念。我们在这里不介绍MongoDB的特点和用法了,感兴趣的可以查一下官方文档。在此重点介绍如何使用python连接MongoDB,并通过PyMongo操作MongoDB数据库。这里默认MongoDB已经安装好啦,安装教程可以参考:http://www.yiibai.com/mongodb/mongodb_environment.html感谢易百教程~~~~~目前最新版本为3.5.1。请注意不要单独安装bson包了,否则会与PyMongo不兼容。使用PyMongo时,第一步是运行mongod实例创建一个MongoClient,代码如下:当然,在使用代码测试之前,请务必保证MongoDB服务已经打开,否则连接不上的~~~~frompymongoimportMongoClientclient=MongoClient()#这是设置连接默认主机和端口,也可以明确指定主机和端口frompymongoimportMongoClient#client=MongoClient()c...

爬虫入门【7】Python-文件的读写和JSON

最重要的open()方法将返回一个file对象,经常使用的两个参数为open(filename,mode)其中,filename为file保存的地址,可以是本地地址,相对地址或者绝对地址。mode对象为对file对象进行的操作'''对这个方法进行一些解释open(file,mode='r',buffering=None,encoding=None,errors=None,newline=None,closefd=True)file就是要操作的文件的地址,这个文件如果不存在,会创建;如果存在会打开;mode参数:r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。w+打开一个文件用于读写。如果该文...

Python PhatomJS 和Selenium动态加载页面 获取图片内容

如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python![](http://www.51dev.com//FileUpload/news/202003/20200325002543449.jpg)随笔中的代码拷贝自http://www.cnblogs.com/Albert-Lee/p/6275146.html感谢阿里波特,通过学习自己做了一些注释,作为总结和记录。 1fromseleniumimportwebdriver2importrequests3frombs4importBeautifulSoup4importos5importtime6#定义函数时,尽量写上默认参数,字符='',数字=0,特殊对象也要定义默认值,这样就可以简单的通过.来得到参数具有的性质等。7classBeautifulPicture():8def__init__(self):9#给请求指定一个请求头来模拟chrome浏览器10self.headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.1(KHTM...

python定时脚本判断服务器内存

经常我们会发现服务器跑着跑着内存使用率达到了百分之八九十,或者有时候直接挂掉,在我们还没定位是哪块代码有问题导致内存占用很大的时候,可以先写个定时脚本,当服务器内存使用率达到一定值的时候,就重启一起服务,释放内存。下面这个定时脚本是每隔10s去判断一下机器的内存,假如内存使用率超过10%,就重启一下进程(正常情况下内存使用率是%5左右,所以就定了个10%),代码如下面蓝色部分所示。然后修改脚本权限,用于命令让它在后头不挂断运行:nohuppython-urestart.py>nohup.out2>&1&#!/usr/bin/envpython#-*-coding:utf-8-*-importosimporttimeimportdatetimeimportschedimportdatetimeimportpsutil#schedule_time=sched.scheduler(time.time,time.sleep)schedule=sched.scheduler(time.time,time.sleep)#defperform_command_time(c...

Python Beautiful Soup学习之HTML标签补全功能

BeautifulSoup是一个非常流行的Python模块。该模块可以解析网页,并提供定位内容的便捷接口。使用下面两个命令安装:pipinstallbeautifulsoup4或者 sudoapt-getinstallPython-bs4如果想安装最新的版本,请直接下载安装包来手动安装,也是十分方便的方法。在这里我安装的是BeautifulSoup4.5.1下载完成之后把解压包放到site-package目录下,cd到解压包中,运行下面的命令即可完成安装:sudopythonsetup.pyinstall然后需要安装lxml:sudoapt-getinstallPython-lxml使用BeautifulSoup的第一步是将已下载的HTML内容解析为soup文档。由于大多数网页都不具备良好的HTML格式,因此BeautifulSoup需要对其实际格式进行确定。例如,在下面这个简单网页的列表中,存在属性值两侧引号缺失和标签未闭合的问题。markup="<b><!--Hey,buddy.Wanttobuyausedparser?--></b>&...

python进阶笔记 thread 和 threading模块学习

Python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。threading基于Java的线程模型设计。锁(Lock)和条件变量(Condition)在Java中是对象的基本行为(每一个对象都自带了锁和条件变量),而在Python中则是独立的对象。start_new_thread()要求一定要有前两个参数。所以,就算我们想要运行的函数不要参数,我们也要传一个空的元组。test_thread.py#!/usr/bin/envpython#-*-coding:utf-8-*-importthreadimporttimefromtimeimportsleep,ctimetest_list=[5,8]deff1():print'startf1at:',ctime()sleep(5)print'f1doneat:',ctime()deff2():print'startf1at:',ctime()sleep(3)print'f1doneat:',ctime()defmain():print"start:",ctime()th...

Python通过一个网页地址获得网页标题Title

importrequestsfrombs4importBeautifulSoupres=requests.get("https://www.51dev.com")res.encoding='utf-8'#soup=BeautifulSoup(res.text,'lxml')print(soup.title.text) ...

Python基础——原生数据类型(字典,列表,元组,字符串)

字典定义了键值对的1对1管理。1、定义字典请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式。我们能通过key得到value,但是不能通过value得到key。还可以通过get方法得到对应key的value。d={'server':'mpilgrim','database':'master'}d{'database':'master','server':'mpilgrim'}d['server']'mpilgrim'd['database']'master'd.get('server')'mpilgrim'2、修改字典字典中的key是不能重复的,当添加一个新的value到对应的key时,将会抹除之前的value。我们可以直接给字典指定一个key-value,直接赋值就好了,一个新的key可以添加到字典中。随时可以给字典添加内容。d['database']='pubs'd{'database':'pubs','server':'mpilgrim'}d['uid']='sa'd{'database':'pubs','server':'mpilgrim','...

python正则表达式匹配 模式匹配

.  Python正则式的基本用法1.1基本规则1.2重复1.2.1最小匹配与精确匹配1.3前向界定与后向界定1.4组的基本知识2.  re模块的基本函数2.1使用compile加速2.2match和search2.3finditer2.4字符串的修改与替换3.  更深入的了解re的组与对象3.1编译后的Pattern对象3.2组与Match对象3.2.1组的名字与序号3.2.2Match对象的方法4.  更多的资料 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了。但是对于初学者来说,要用好这个功能还是有点难度,我花了好长时间才摸出了点门道。由于我记性不好,很容易就忘事,所以还是写下来比较好一些,同时也可以加深印象,整理思路。由于我是初学,所以肯定会有些错误,还望高手不吝赐教,指出我的错误。1Python正则式的基本用法Python的正则表达式的模块是‘re’,它的基本语法规则就是指定一个字符序列,...

python3.7成功安装dlib库

不知道为什么python3.7版本安装dlib不能直接用pip,真的超级麻烦。然后看了其他一些博客感觉挺复杂的,boost居然也要设置环境变量,而且问题很多。我大概花了一天的时间才总算弄好,而且也不是很复杂。1.先去下载dlib的安装包,网址在这https://pypi.org/project/dlib/#files,然后解压安装包。2.下载vs,我的vs版本是vs2017,如果没有先装上vs的要先装上喔https://blog.csdn.net/qq_36556893/article/details/79430133。然后设置cl.exe的环境变量(写入Path中,不知道环境变量在哪的去百度就知道了)。https://blog.csdn.net/zhang475546259/article/details/84104368这里有写到如何设置将vs的cl.exe的环境变量。3.用win+R打开命令提示符,输入pipinstallcmake,然后将cmake文件夹中的bin文件的路径写入到环境变量中,同样可参考https://blog.csdn.net/zhang475546259/ar...
开发笔记 开发笔记·2020-03-17

如何使用python搭建一个高性能的网站

作为一名程序员,还是必须要会开发网站的,不然别人都会怀疑你是不是程序员了。今天,主要介绍一下如何使用python来搭建一个网站。可能有人会觉得搭建网站不都应该用java么?python的性能那么低。的确,使用java来开发网站的确要比python多的多。但实际上还是有很多大型的网站都是使用python搭建起来的,如国外最大的视频分析网站YouTube、国内的豆瓣、搜狐以及知乎等都是使用python开发的。使用python常用搭建网站的框架有Django、tornado、web.py、web2py、CherryPy、Flask、Bottle、Quixote等。用的比较多的有Django、tornado、Flask。下面主要来介绍一下tornado和django。一、DjangoDjango是一个开发源代码的web应用框架是用python写的。采用了MVC的框架,开发网站的应该都知道MVC,模型、视图、控制器,这里有点像java的spring框架。Django的核心组件有,创建模型的对象关系映射,就是将数据库中的表与类对应起来操作数据库的时候不用写SQL语句直接操作对象来完成对表的操作,在...

python3简单实现一个口罩抽签的功能

每个人产生对应的抽签码;开始进行抽签;公布中签结果;这次案例写的比较简单,实际生产环境远比这复杂的多,但是万变不离其宗,基本逻辑还是差不多的……importrandomdefget_random_code(num_code):"""生成并返回随机验证码:paramnum_code:随机验证码位数"""list_code=[]foriinrange(num_code):#(1)随机生成三种字符#(1-1)随机生成0~9的数字num=str(random.randint(0,9))#(1-2)随机生成小写字母lower_alphabet=chr(random.randint(97,122))#(1-3)随机生成大写字母upper_alphabet=chr(random.randint(65,90))#(2)再次随机抽取一个字符random_code=random.choice([num,lower_alphabet,upper_alphabet])#(3)保存随机抽取的字符list_code.append(random_code)return"".join(li...

Python3 itchat实现微信定时发送群消息

1,使用微信,定时往指定的微信群里发送指定信息。2,需要发送的内容使用excel进行维护,指定要发送的微信群名、时间、内容。1,itchat:这个是主要的工具,用于连接微信个人账号接口。以下是一些相关的知识点网站。2,xlrd:这个是用来读Excel文件的工具。3,apscheduler:这个是用来定时调度时间的工具。#coding=utf-8fromdatetimeimportdatetimeimportitchatimportxlrdfromapscheduler.schedulers.backgroundimportBlockingSchedulerimportosdefSentChatRoomsMsg(name,context):itchat.get_chatrooms(update=True)iRoom=itchat.search_chatrooms(name)forroominiRoom:ifroom['NickName']==name:userName=room['UserName']breakitchat.send_msg(context,userName)print(...

python 文件读取

读取整个文件操作文件的第一步就是得打开要操作的文件,然后进行读取。在python中我们可以使用open函数来打开一个文件,然后使用read方法来读取文件。示例:importoswithopen('data.txt',encoding='utf-8')asfile_obj:contents=file_obj.read()print(contents.rstrip())首先,我们看下open函数的定义:defopen(file:Union[str,bytes,int],mode:str=...,buffering:int=...,encoding:Optional[str]=...,errors:Optional[str]=...,newline:Optional[str]=...,closefd:bool=...)Inferredtype:(file:Union[str,bytes,int],mode:str,buffering:int,encoding:Optional[str],errors:Optional[str],newline:Optional[str],closefd:bo...
开发笔记 开发笔记·2020-03-09

python查看当前路径

1.os模块importosprintos.getcwd()#获取当前工作目录路径printos.path.abspath('.')#获取当前工作目录路径printos.path.abspath('test.txt')#获取当前目录文件下的工作目录路径printos.path.abspath('..')#获取当前工作的父目录!注意是父目录路径printos.path.abspath(os.curdir)#获取当前工作目录路径2.sys模块importsysprintsys.argv[0]#输出#本地路径 ...
开发笔记 开发笔记·2020-03-09
首页上一页...387388389390391下一页尾页