爬虫入门【3】BeautifulSoup4用法简介

首先创建一个我们需要解析的html文档,这里采用官方文档里面的内容:html_doc="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"><b>TheDormouse'sstory</b></p><pclass="story">Onceuponatimetherewerethreelittlesisters;andtheirnameswere<ahref="http://example.com/elsie"class="sister"id="link1">Elsie</a>,<ahref="http://example.com/lacie"class="sister&q...

爬虫入门【2】Requests库简介

使用Requests发送网络请求很简单#首先要导入requests库importrequests#返回一个Response对象r=requests.get('https://github.com/timeline.json')#由此可以看出来Requests的API十分简单,#post请求r=requests.post('http://httpbin.org/post')#Put请求,delete请求,head请求,options请求r=requests.put('http://httpbin.org/put')一般的get传递参数方法是将数据与url地址用?连起来。Requests库允许使用params关键字参数,以一个dict来提供这些参数。importrequestspayload={'key1':'value1','key2':'value2'}r=requests.get('http://httpbin.org/get',params=payload)print(r.url)#可以看出response对象由url属性http://httpbin.org/get?key1=va...

爬虫入门【1】urllib.request库用法简介

如何使用urllib库获取网络资料打开指定的URLurllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)url参数,可以是一个string,或者一个Request对象。data一定是bytes对象,传递给服务器的数据,或者为None。目前只有HTTPrequests会使用data,提供data时会是一个post请求,如若没有data,那就是get请求。data在使用前需要使用urllib.parse.urlencode()函数转换成流数据。fromurllibimportrequestresp=request.urlopen('http://www.baidu.com')print(type(resp))#可以看出,urlopen返回的是一个HTTPResponse对象<class'http.client.HTTPResponse'>print(dir(resp))#resp具有的方法和属性如下,我们最常用的是read和rea...

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...

php 爬虫框架

发现两款不错的爬虫框架,极力推荐下:phpspider一款优秀的PHP开发蜘蛛爬虫官方下载地址:https://github.com/owner888/phpspider官方开发手册:https://doc.phpspider.org/QueryList使用jQuery选择器来做采集,告别复杂的正则表达式;QueryList具有jQuery一样的DOM操作能力、Http网络操作能力、乱码解决能力、内容过滤能力以及可扩展能力;可以轻松实现诸如:模拟登陆、伪造浏览器、HTTP代理等意复杂的网络请求;拥有丰富的插件,支持多线程采集以及使用PhantomJS采集JavaScript动态渲染的页面。官方下载地址:https://github.com/jae-jae/QueryList官方开发手册:https://doc.querylist.cc/无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。...
开发笔记 开发笔记·2020-03-11

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(...
首页上一页...383384385386387下一页尾页