爬虫入门【6】Selenium用法简介

一句话,自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器。如果你在这些浏览器里面安装一个Selenium的插件,那么便可以方便地实现Web界面的测试。换句话说叫Selenium支持这些浏览器驱动。我们在Python里面安装Selenium的话,就可以调用浏览器来访问web界面了。Selenium调用web需要由对应的浏览器驱动来支持。首先要确认自己的系统版本,我安装的是win10,在系统设置里面查询一下自己的版本号。本来想下载Chrome或者FireFox的驱动,但是Selenium的官网点进去想下载都困难。。。。----------------------------我是华丽的分割线--------------------------------------------------------突然又下好了,地址为http://www.seleniumhq.org/download/,Chrome和Firefox的。但是由于WebDriver的版本问题,打开还是有些困难,回头再弄把。。先用Edge。-------------------...

爬虫入门【5】PyQuery简介

目前最新的版本是1.3,基于最新版本进行介绍。主要根据PyQuery的官方文档进行了更新。frompyqueryimportPyQueryaspqfromlxmlimportetreeimporturllibdoc=pq('<pid="hello"class="hello"></p>')#解析文档的基本方法p=doc('p')#获取p标签print(p.attr('id'))#获取p标签的id属性的值p.attr('id','plop')#改变p标签的id属性的值为plopprint(p.attr('id'))p.attr.id='snow'#使用python的方式改变id属性print(p.attr.id)p.attr['id']='ola'print(p.attr['id'])p.attr(id='hello',class_='hello2')print(p)helloplopsnowola<pid="hello"class="hello2"/>p.add_class...

爬虫入门【4】正则表达式用法简介

首先推荐使用r'string'来定义字符,免去转义字符的影响。#'.',点号,在默认模式中,匹配任何一个字符,除了新的行newline。如果DOTALL标记指定了,那么还可以匹配newline。#'^',匹配字符串的开始#'$',匹配字符串的结束。比如foo匹配foo或者foobar,但是foo$只能匹配到foo。#'*',匹配0个或者多个字符,比如ab*,可以匹配a,ab,abbbb等#'+',匹配1个或者多个字符,比如ab+,可以匹配ab,或者abbbb#'?',匹配0或者1个字符,比如ab?只能匹配a或者ab。#贪婪模式,*?+,都是贪婪模式的,会尽可能多的匹配字符,在后面加上一个?则会变为非贪婪模式,尽可能匹配少的字符。#我们一般用非贪婪模式。#{m},指定匹配的数量,比如a{6}表示将匹配6个a字符,而不是5个,准确匹配。#{m,n},匹配在m~n个字符之间,包含m和n,比如a{3,5}将匹配3-5个a字符,一般会取上限来匹配。#如果不指定m或者n,则表示没有上限,下限不能低于0个#{m,n}?,非贪婪模式的匹配,尽可能匹配少,取下限m来匹配。#[],用于创造一个字符的集合,...

爬虫入门【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语句直接操作对象来完成对表的操作,在...
首页上一页...385386387388389下一页尾页