爬虫必备之selenium

 selenium是一个自动化测试的工具,我不是搞那方面的,所以也在那方面的具体应用不太了解。但是,这并不影响我在爬虫和其它方面的使用。安装:使用pip安装就可以了。注:使用selenium之前需要下载chromedriver.exe放入chorme安装的文件夹,并配置环境变量哦!具体自行百度解决。具体使用:一、.声明浏览器对象:browser=webdriver.Chrome()二、.访问页面:browser.get('https://www.baidu.com')#访问url,也就是相当于在地址栏上访问url其它操作:print(browser.page_source)#查看网页源码print(browser.get_cookies())#查看cookiesprint(browser.current_url)#查看url 三、查找元素:.常用:input_1=browser.find_element_by_id('q')#查找id为q的那个标签包含的东西input_2=browser.find_element_by_css_selector('#q')#'#'选...
代码星球 代码星球·2020-04-05

爬取爬虫学习资料

 如有不得当之处,请联系我会及时删除这次的抓取我用的是requests和Xpath,因为没有必要使用大型工具importrequestsfromlxmlimportetree 思路:1.目的是下载爬虫教程2.分析网页以及规则,使用Xpath简单获取下载url3.循环下载代码如下:classgithub():def__init__(self):self.allowed_domains='https://github.com/Python3WebSpider'self.headers={'User-Agent':'*****请换成你们自己的'}defspider_pipline(self):response1=requests.get(self.allowed_domains,headers=self.headers,timeout=5)selector=etree.HTML(response1.text)main_hrefs=selector.xpath('//div[@id="org-repositories"]//ul/li/div[@class="d-inlin...
代码星球 代码星球·2020-04-05

JVM(Java虚拟机)优化大全和案例实战

JVM堆内存分为2块:Permanent Space和HeapSpace。Permanent即 持久代(PermanentGeneration),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap={Old+NEW={Eden,from,to}},Old即年老代(OldGeneration),New即 年轻代(YoungGeneration)。年老代和年轻代的划分对垃圾收集影响比较大。年轻代所有新生成的对象首先都是放在年轻代。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代一般分3个区,1个Eden区,2个Survivor区(from和to)。大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个),当一个Survivor区满时,此区的存活对象将被复制到另外一个Survivor区,当另一个Survivor区也满了的时候,从前一个Survivor区复制过来的并且此时还存活的对象,将可能被复制到年老代。2个Survivor区是对称的,没有先后关系,所以同一个Survi...

用DOM4J解析XML文件案例

用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:1.xml文件<?xmlversion="1.0"encoding="UTF-8"?><class><student><name>张三</name><sid>111111</sid></student><student><name>李四</name><sid>222222</sid></student></class>Java代码:importjava.io.FileOutputStream;importjava.util.List;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importorg....

大数据之Zookeeper:zookeeper数据结构、zookeeper安装、zookeeper内部原理、分布式zookeeper部署、命令行、zookeeper的API、监听服务器动态上下线案例

转载:https://blog.csdn.net/qq_43265673/article/details/100057878文章目录第1章·Zookeeper概述。1.1.概述。1.2·特点1.3·数据结构。1.4·应用场景。1.5·下载地址第2章·Zookeeper安装。2.1·本地模式安装部署。2.2·配置参数解读。第3章·Zookeeper内部原理。3.1·选举机制3.2·节点类型。3.3.stat结构体3.4·监听器原理。3.5·写数据流程第4章·Zookeeper实战。4.1.分布式安装部署4.2·客户端命令行操作。4.3API应用4.3.1eclipse环境搭建.4.3.2·创建Z00Keeper客户端。4.3.3.创建子节点4.3.4·获取子节点并监听4.3.5·判断zmode是否存在。4.4·案例实战。监听服...

【Hadoop入门学习系列之六】HBase基本架构、编程模型和应用案例

转载:https://blog.csdn.net/shengmingqijiquan/article/details/52922009HBase是一个构建在HDFS上的分布式列存储系统;HBase是ApacheHadoop生态系统中的重要一员,主要用于海量结构化数据存储;从逻辑上讲,HBase将数据按照表、行和列进行存储。Hbase是Hadoop生态系统的一个组成部分Hbase与HDFS对比共同点:两者都具有良好的容错性和扩展性,都可以扩展到成百上千个节点;不同点:HDFS:适合批处理场景不支持数据随机查找不适合增量数据处理不支持数据更新HBase:大:一个表可以有数十亿行,上百万列;无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;面向列:面向列(族)的存储和权限控制,列(族)独立检索;稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;数据类型单一:Hbase中的数据都是字符串,没有类型行存储与列存储二.HBas...

Bat脚本处理ftp超强案例解说

Bat脚本处理ftp超强案例解说转自:http://369369.blog.51cto.com/319630/842341 前言:  公司有几百台windows服务器,每次程序更新,如果是一台台拷数据,只怕安排十个人,一天都不一定做得完,所以就必须研究个全自动更新方案来,于是就想到了FTP,做个主FTP站,在几百台客户机上启动BAT脚本,每30秒检测一次,如果主站有更新程序,就自动下载更新,几分钟内,上400台windows服务器,都可以全自动更新程序完毕,相当实用,现把当初研究BAT的脚本思路贴出来,希望对大批量运维人员一个方向。当然,批量更新服务器,每个公司有它自己的解决办法,这个BAT的方式不是最优的,可以用shell,可以用perl,也可以用python等脚本解决。一、FTP命令说明1、在windows系统中因为FTP是一个程序,如果在bat脚本中直接调用FTP的命令,在执行时总会弹出命令行窗口,循环在>FTP光标这,所以要换种方式,利用-S:filename,更多的命令请输入-h查看。2、FTP登录成功后,需要下载远程单个文件时,使用get...

angular学习笔记(一)-入门案例

入门实例: 一个购物车产品清单,可以自行改变数量,总价自动计算的小例子:代码如下:<!DOCTYPEhtml><htmlng-app><head><title>1.1实例:购物车</title><metacharset="utf-8"><scriptsrc="../angular.js"></script><scriptsrc="script.js"></script><styletype="text/css">.red{color:#cc0000}*{font-family:'MICROSOFTYAHEI'}TD{font-size:12px;color:#999;}</style></head><body><divng-controller="CarController"><h1>yourshoppingcart</h1><table><trng-rep...

MySQL服务器 IO 100%的案例分析

【问题】有台MySQL5.6.21的数据库实例以写入为主,IO%util接近100% 写入IOPS很高 【分析过程】1、通过iotop工具可以看到当前IO消耗最高的mysql线程 2、查看线程49342的堆栈,可以看到正在进行redolog的刷新,对应的是9号文件 3、9号文件对应的是redolog的第一个文件 为什么mysql进程会频繁的刷新redolog文件,要结合redolog的刷盘策略来分析,关键是innodb_flush_log_at_trx_commit参数,默认是1,最安全,但在写压力大的情况下,也会带来较大的性能影响,每次事务提交时MySQL都会把logbuffer的数据写入logfile,并且flush(刷到磁盘)中去。 结合这个集群的写入场景来看,大部分都是小事务的写入,每次事务提交都会触发刷盘动作,这种场景下通过增大innodb_log_buffer_size和innodb_log_file_size的优化效果不明显 【优化方案】1、应用层面,对于写压力大的系统,可以将单条的insert语句优化...

python爬虫与数据采集

#python爬虫技术#1-1需要通过python的urllib或者request建立请求通信机制#1导入python的url库,请求库,用于与网页进行通信请求'''fromurllib.requestimporturlopenurl="https://www.python.org/"response=urlopen(url)content=response.read()#需要解码content=content.decode("utf-8")print(content)#2直接URLopen打开的方式太直白,有时候我们需要委婉一点进行请求importurllib.requesturl="https://www.python.org/"request=urllib.request.Request(url)response=urllib.request.urlopen(request)content=response.read().decode("utf-8")print(response.geturl())print(response.info())#打印请求码print(respons...
代码星球 代码星球·2020-04-04

12.Python爬虫利器三之Xpath语法与lxml库的用法

LXML解析库使用的是Xpath语法:XPath是一门语言XPath可以在XML文档中查找信息XPath支持HTMLXPath通过元素和属性进行导航XPath可以用来提取信息XPath比正则表达式厉害XPath比正则表达式简单 lxml使用方法:fromlxmlimportetreetext='''<div><ul><liclass="item-0"><ahref="link1.html">firstitem</a></li><liclass="item-1"><ahref="link2.html">seconditem</a></li><liclass="item-inactive"><ahref="link3.html">thirditem</a></li><liclass="item-1"><ahref="link4.html">fourthitem</a></l...

9.Python爬虫利器一之Requests库的用法(一)

requests官方文档:http://cn.python-requests.org/zh_CN/latest/user/quickstart.htmlrequest是一个第三方的HTTP库 1.发起请求发起GET请求非常简单,直接使用requests的get方法即可。比方说下面的代码获取百度首页的信息。1importrequests23baidu_url='https://www.baidu.com'45response=requests.get(baidu_url)6print(response.content.decode())如果要在URL上附加参数,也非常简单,使用params参数传入字典即可。参数会自动附加到URL上,列表参数也会正确的附加。这里这个网站是一个HTTP调试网站,值得收藏。如果我们访问这个网站,它会将浏览器发送的请求头,用户代理、表单参数等信息以格式化JSON形式返回,对HTTP调试非常有帮助。1#基本Get请求2r=requests.get('http://httpbin.org/get')3#如果要加参数,可以利用params参数4payload...

8.Python爬虫实战一之爬取糗事百科段子

大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧。那么这次为大家带来,Python爬取糗事百科的小段子的例子。首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来。1.抓取糗事百科热门段子2.过滤带有图片的段子1#coding:utf-82importurllib3importurllib24importre5page=16url='https://www.qiushibaike.com/hot/page/1/'+str(page)7user_agent='Mozilla/4.0(compatible;MSIE5.5;WindowsNT)'8headers={'User-Agent':user_agent}910try:11request=urllib2.Request(url,headers=headers)12response=urllib2.urlopen(request)13qiubaiPattern=re.compile('<div.*?author.*?>',re.S)14infos=re.fi...

6.Python爬虫入门六之Cookie的使用

大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用。为什么要使用Cookie呢?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。在此之前呢,我们必须先介绍一个opener的概念。当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例)。在前面,我们都是使用的默认的opener,也就是urlopen。它是一个特殊的opener,可以理解成opener的一个特殊实例,传入的参数仅仅是url,data,timeout。如果我们需要用到Cookie,只用这个opener是不能达到目的的,所以我们需要创建更一般的opener来实现对Cookie的设置。cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。C...

5.Python爬虫入门五之URLError异常处理

大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理。首先解释下URLError可能产生的原因:网络无连接,即本机无法上网连接不到特定的服务器服务器不存在在代码中,我们需要用try-except语句来包围并捕获相应的异常。下面是一个例子,先感受下它的风骚request=urllib2.Request('http://www.xxx.xom')try:urllib2.urlopen(request)excepturllib2.URLError,e:printe.reason我们利用了urlopen方法访问了一个不存在的网址,运行结果如下:[Errno11001]getaddrinfofailed它说明了错误代号是11004,错误原因是 getaddrinfofailed 2.HTTPErrorHTTPError是URLError的子类,在你利用urlopen方法发出一个请求时,服务器上都会对应一个应答对象response,其中它包含一个数字”状态码”。举个例子,假如response是一个”重定向&...
首页上一页...4344454647...下一页尾页