为您找到搜索结果:815个
吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(效率优化以及代码容错处理)
这篇博文主要是对我的这篇https://www.cnblogs.com/tszr/p/12198054.html爬虫效率的优化,目的是为了提高爬虫效率。可以根据出发地同时调用多个CPU,每个CPU运行一个出发地的脚本,如果你的电脑有8个CPU,那么将会每次同时获取8个出发地的数据。代码如下:importtimeimportjsonimportpymongoimportrequestsimporturllib.request#使用MongoDB创建数据库、表client=pymongo.MongoClient('localhost',27017)book_qunar=client['qunarr']sheet_qunar_zyx=book_qunar['qunar_zyxx']defget_list(dep,item):url='https://touch.dujia.qunar.com/list?modules=list%2CbookingInfo%2CactivityDetail&dep={}&query={}&dappDealTrace=true&m...
吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(优化)
本博文主要是对我的这篇:https://www.cnblogs.com/tszr/p/12193744.html爬取某一大型电商网站的商品数据博文代码的优化和整理。代码优化可以提高代码的可读性。importtimeimportjsonimportpymongoimportrequestsimporturllib.request#使用MongoDB创建数据库、表client=pymongo.MongoClient('localhost',27017)book_qunar=client['qunarr']sheet_qunar_zyx=book_qunar['qunar_zyxx']defget_list(dep,item):url='https://touch.dujia.qunar.com/list?modules=list%2CbookingInfo%2CactivityDetail&dep={}&query={}&dappDealTrace=true&mobFunction=%E6%89%A9%E5%B1%95%E8%87%AA%E7%94%B1%E...
吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据
首先观察、分析网站网址:https://touch.qunar.com 接下按F12进入浏览器开发者模式,并且点击 自由行 选项进入到自由行频道,如下图: RequestURL:https://dujia.qunar.com/golfz/destination/tejiaLeft?num=6&tms=pc_jrth&dep=%E6%B7%B1%E5%9C%B3&callback=jQuery17203372573055312833_1579011479291&_=1579011479776单击任意一个城市,通过观察可以发现数据在XHR(用XMLHttpRequest方法来获取JavaScript) 其中RequestURL是以%开头的字符串是中文编译成的字符串,由于服务器不能识别中文字符,所以这里可以使用第三方工具解码查看。这里使用的是零一工具。下载网址:http://www.muyaotech.com/abo...
吴裕雄--天生自然PYTHON爬虫:安装配置MongoDBy和爬取天气数据并清洗保存到MongoDB中
1、下载MongoDB官网下载:https://www.mongodb.com/download-center#community 上面这张图选择第二个按钮 上面这张图直接Next 把bin路径添加到path中,如下图: 在安装路径下自己创建一个文件mongo.conf,配置内容如下:#数据库路径dbpath=E:mongodbdata#日志输出文件路径logpath=E:mongodblogmongo.log#错误日志采用追加模式logappend=true#启用日志文件,默认启用journal=true#这个选项可以过滤掉一些无用的日志信息,若需要调试请使用设置为falsequiet=true#端口号默认为27017port=27017启动MongoDB服务打开cmd命令行护着用Windows+R键打开,输入cmd进入mongo安装路径的bi...
吴裕雄--天生自然HADOOP操作实验学习笔记:pvuv统计案例理论
实验目的复习pv、uv的概念和原理了解pv、uv的实际意义和获取方法实验原理 前面我们已经基于mapreduce进行数据的etl处理,实验有很多不足之处,这次实验我们是基于url数据进行pv和uv的统计。pv的意思是pageview,uv的意思是userview,分别代表页面点击量和用户数。pv、uv统计的基本思路很简单,首先得到数据、过滤数据,然后得到数据中所有的用户,累加求和就是pv,去重求和就是uv。 统计pv的sql语句就是使用count方法;统计uv的方法是按照用户分组后再使用count方法。1.PV统计(页面访问量) (1)基本概念 PV通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一,简称为PV。监测网站PV的变化趋势和分析其变化原因是很多站长定期要做的工作。PageViews(PV)中的Page一般是指普通的html网页,也包含php、jsp等动态产生的html内容。来自浏览器的一次html内容请求会被看作一个PV,逐渐累计成为PV总数。 (2)计算方法 用户每1次对网站中的每个网页访问均被记录1次。用户对...
吴裕雄--天生自然HADOOP操作实验学习笔记:ETL案例
实验目的熟悉hadoop生态系统初步了解大数据点击流分析业务学会使用hadoop进行数据分析统计实验原理 hadoop主要有三部分,hdfs做数据存储、mapreduce做数据计算、yarn做资源调度。在企业生产环境下,对数据做统计需要结合hadoop三个部分综合运用,中间还要使用kafka、storm、hive、hbase、flume、sqoop、mahout等其它工具。架构一般都会很复杂,接下来几个实验我们主要是针对mapreduce的运用,熟悉企业数据处理的一般步骤。1.数据ETL 数据ETL我们之前讲过,通hive进行处理。同样通过mapreduce进行处理也是常用的思路。一般情况下,我们会记录一个用户访问某个网站的url,数据格式如下:24162912299|156682|17|353817084376524|913|2017-03-0715:43:59.355741|2017-03-0715:44:36.938215|10.216.41.184|58.251.80.100||460011030082524|116.79.217.172|220.206.128.106|0...
吴裕雄--天生自然PYTHON爬虫:用API爬出天气预报信息
天气预报网址:https://id.heweather.com/,这个网站是需要注册获取一个个人认证后台密钥key的,并且每个人都有访问次数的限制,这个key就是访问API的钥匙。 这个key现在是要自己创建的,名称自己写,key值可以不写,创建的时候会自动生成。接下来就是要阅读这个API文档。 包括上面怎么创建获取这个key这个API文档也有介绍的。 选择API这部分来阅读。接口地址: #获取城市列表importrequestsurl='https://cdn.heweather.com/china-city-list.txt'response=requests.get(url)response.encoding='utf8'data=response.textdata_1=data.split('')print(data_1) foriinra...
吴裕雄--天生自然PYTHON爬虫:爬虫攻防战
我们在开发者模式下不仅可以找到URL、FormData,还可以在Requestheaders中构造浏览器的请求头,封装自己。服务器识别浏览器访问的方法就是判断keywor是否为Requestheaders下的User-Agent,因此我们只需要构造这个请求头的参数。创建请求头部信息即可。headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/79.0.3945.117Safari/537.36'}response=requests.get(url,headers=headers)写到这里,或许许多人认为修改User-Agent很简单,也确实是简单,但是正常人1秒看一张图片,而如果是代码爬虫的话1秒就可以抓取好多张图,比如1秒就抓取了一百张图片,那么服务器的压力必然会增大。也就是说如果在一个IP下批量访问下载图片,这个行为不符合正常人类的行为,这个访问IP肯定要被封的。其原...
吴裕雄--天生自然PYTHON爬虫:使用BeautifulSoup解析中国旅游网页数据
importrequestsfrombs4importBeautifulSoupurl="http://www.cntour.cn/"strhtml=requests.get(url)soup=BeautifulSoup(strhtml.text,"lxml")#下面的参数由网站开发者模式中Copy->copyselector复制而来data=soup.select("#main>div>div.mtop.firstMod.clearfix>div.centerBox>ul.newsList>li:nth-child(1)>a")print(data) importrequestsfrombs4importBeautifulSoupurl="http://www.cntour.cn/"strhtml=requests.get(url)soup=BeautifulSoup(strhtml.text,"lxml")#下面的参数由网站开发者模式中Copy->copyselector复制而来,获取该网...
吴裕雄--天生自然python爬虫:使用requests模块的get和post方式抓取中国旅游网站和有道翻译网站翻译内容数据
importrequestsurl='http://www.cntour.cn/'strhtml=requests.get(url)print(strhtml.text) URL='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'#post请求需要写请求访问,请求内容可以在对应网页的开发者模式中获取,谷歌浏览器显示不出来,我使用的是IE浏览器Form_data={'action':'FY_BY_REALTlME','bv':'20d61fc7e537da4985601dbf07f2a9f9','client':'fanyideskweb','doctype':'json','from':'AUTO','i':'我是学生','keyfrom':'fanyi.web','salt':'15788374698951','sign':'f2bebd118c9d...
吴裕雄--天生自然HADOOP操作实验学习笔记:hbase微博案例
实验目的熟悉hbase表格设计的方法熟悉hbase的javaAPI通过API理解掌握hbase的数据的逻辑视图了解MVC的服务端设计方式实验原理 上次我们已经初步设计了学生选课案例的,具体功能还不完善,但是实现方式都是在已经设计好的表格之上,调用hbase已有的API,本次我们将会实现一个稍微复杂的业务逻辑,类似新浪微博的项目。实际上新浪微博是一个特别庞大的系统,光内存数据库Redis就有几千台集群,每天的访问量和流量几乎是全国最高的网站,这样一个复杂的集群架构也特别复杂,我们只是实现最基本简单的发微博、刷微博、关注等功能。1.表格设计 上次我们设计过表格,在大数据的业务中,通过牺牲空间多存副本来加快访问时间是比较常见的一种做法。所以首先我们需要有用户表,用户表的rowkey是用户id,一个列族是用户信息,另两个列族是粉丝和关注。同理还要有微博表,微博表的rowkey是微博id,第一个列族是微博的信息,包括内容、时间、评论等。同时,为了访问方便我们需要另外添加一个收件箱表,收件箱表的rowkey为用户id,列族可以根据业务的需求自己添加,例如添加用户发过的微博,用户收到的微博,用户...
吴裕雄--天生自然HADOOP操作实验学习笔记:hbase学生选课案例
实验目的复习hbase的shell操作和javaAPI操作了解javaWeb项目的MVC设计学会dao(数据库访问对象)和service层的代码编写规范学会设计hbase表格实验原理 前面我们已经了解hbase的shell操作、javaAPI操作,并且能够使用hive操作hbase表格(实际上是转化为mapreduce操作),本次实验我们就是利用hbase实现一个简单的学生选课案例。实现学生选课首先是要学会设计表格,然后根据设计的表格进行各种逻辑实现。1.设计表格 hbase表格设计需要注意,由于hbase查询只能通过rowkey或者rowkey的范围,不适用其他工具的条件下不能通过其他的方式查询,所以我们最后查询的效率全都取决于rowkey的设计。所以说一开始我们就需要将rowkey设计的比较完美,但是我们最后还是很难完全满足业务的需要,这时候可能需要配合搜索引擎进行操作(具体内容大家可以参见Lucene、solr、elasticsearch的内容)。我们今天要实现选课的案例,首先需要学生表、课程表。这两个表格的设计除了rowkey以外还需要再加一个info的列族,里面具体的列就...
吴裕雄--天生自然java开发常用类库学习笔记:线程操作案例——生产者与消费者
classInfo{//定义信息类privateStringname="李兴华";//定义name属性privateStringcontent="JAVA讲师";//定义content属性publicvoidsetName(Stringname){this.name=name;}publicvoidsetContent(Stringcontent){this.content=content;}publicStringgetName(){returnthis.name;}publicStringgetContent(){returnthis.content;}};classProducerimplementsRunnable{//通过Runnable实现多线程privateInfoinfo=null;//保存Info引用publicProducer(Infoinfo){this.info=info;}publicvoidrun(){booleanflag=false;//定义标记位for(inti=0;i<50;i++){if(flag){this.info.setName("李兴...
吴裕雄--天生自然python学习笔记:python爬虫PM2.5 实时监测显示器
PM2.5对人体的健康影响很大,所以空气中的PM2.5实时信息受到越来越多的关注。Python的Pandas套件不但可以自动读取网页中的表格数据,还可对数据进行修改、排序等处理,也可绘制统计图表,对于信息抓取、整理以及显示是不可多得的好工具。将开发一个PM2.5实时监测显示器程序。本程序可以直接读取行指定网站上的PM2.5数据,并在整理后显示,这样就可以方便地让用户随时看到最新的PM2.5监测数据。应用程序总览执行程序后,会自动选取第1条数据的区县及监测站点,下方则显示该监测站点当前P阳5数值及污染等级。某些监测站点也可能没有监测数据,若无数据,程序会在信息框中告知用户。单击其他区县,下方监测站点会显示该区县所有监测站点,默认选取第l个监测站点井显示其PM2.5信息。单击其他监测站点,则显示其他站点的PM2.5信息。用户还可以随时单击“更新数据”按钮来刷新该监测站的最新PM2.5数据。PM2.5公开数据我们要抓取北京市各区县的PM2.5数据在网站http://www.86pm25.com/city/beijing.html中。打开网页,我们可以看到一个北京市各区...
吴裕雄--天生自然python学习笔记:编写网络爬虫代码获取指定网站的图片
我们经常会在网上搜索井下载图片,然而一张一张地下载就太麻烦了,本案例就是通过网络爬虫技术,一次性下载该网站所有的图片并保存。网站图片下载并保存将指定网站的.jpg和.png格式的图片全部下载井保存在自己本地新建的images文件夹中。 importrequests,osfrombs4importBeautifulSoupfromurllib.requestimporturlopenurl='http://www.tooopen.com/img/87.aspx'html=requests.get(url)html.encoding="utf-8"sp=BeautifulSoup(html.text,'html.parser')#建立images目录保存图片images_dir="E:\images\"ifnotos.path.exists(images_dir):os.mkdir(images_dir)#取得所有<a>和<img>标签all_links=sp.find_all(['a','img'])forlinkin...