Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐

前文说过我的设计师小伙伴的设计需求,他想做一个披头士乐队历年专辑的瀑布图。通过搜索,发现网易云音乐上有比较全的历年专辑信息加配图,图片质量还可以,虽然有大有小。我的例子怎么都是爬取图片?(谁让你总是跟设计师小伙伴一起玩耍。。。)看来图片对于设计师来说还是有着很深的情节,那就看他用这些图片能做出什么样的作品啦,期待一下,后续会展示一下他的作品。其实爬取网易云音乐跟之前爬取的网站稍稍有点不同,当然,爬虫写的多了就觉得套路都是固定的,见招拆招而已。我的运行环境如下:系统版本Windows10。Python版本Python3.5,推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。IDE我使用的是PyCharm,是专门为Python开发的IDE。这是JetBrians的产品,点我下载。上面提到过,网易云音乐的网页跟普通的网页相比主要有两点不同:网页是js动态加载的使用了iframe框架所以,首先,网页请求不能使用requests库,需要使用Selenium+PhatomJS。其...

Python爬虫小白入门(五)PhatomJS+Selenium第二篇

前文介绍了PhatomJS和Selenium的用法,工具准备完毕,我们来看看如何使用它们来改造我们之前写的小爬虫。我们的目的是模拟页面下拉到底部,然后页面会刷出新的内容,每次会加载10张新图片。大体思路是,用Selenium+PhatomJS来请求网页,页面加载后模拟下拉操作,可以根据想要获取的图片多少来选择下拉的次数,然后再获取网页中的全部内容。我的运行环境如下:系统版本Windows10。Python版本Python3.5,推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。IDE我使用的是PyCharm,是专门为Python开发的IDE。这是JetBrians的产品,点我下载。3.1模拟下拉操作要想实现网页的下拉操作,需要使用Selenium的一个方法来执行js代码。该方法如下:driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")由此可见,使用execute_script方法...

node爬虫之图片下载

背景:针对一些想换头像的玩家,而又不知道用什么头像的,作为一名代码爱好者,能用程序解决的,就不用程序来换头像,说干就干,然后就整理了一下。安装node环境node-vnode版本最好在8.11.1以上assets是存放所下载的图片static是静态资源页面eg.js是下载图片示例(nodeeg.js)img.json是网页所获取的json数据index.js属于服务端npminit(会生成一个package.json)npmiexpress--save-devnpmicheerio--save-devnpmisuperagent--save-devnpmisuperagent-charset--save-devnpmirequest--save-devSuperAgent是一个轻量级、灵活的、易读的、低学习曲线的客户端请求代理模块,使用在NodeJS环境中superagent-charset防止爬取下来的数据乱码,更改字符格式cheerio是jquery核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对DOM进行操作的地方。request的功能比较强大,在这里只是为了下...
代码星球 代码星球·2020-09-17

微信小程序仿今日头条nav(可滑动页面切换tab)

废话不多说,直接上代码:1.wxml <viewclass="navigation"><scroll-viewscroll-x="true"class="nav-scroll"scroll-left="{{scrollLeft}}"><blockwx:for="{{navigation}}"wx:key="index"><viewid="{{index}}"bindtap="navHandler"class="nav-itemnav-item-{{index}}{{index==selectedTitle?'active':''}}">{{item.name}}</view></block></scroll-view></view><swiperbindchange="bindChange"current='{{selectedTitle}}'duration="200"style="height:{{swiperHeight}}rpx"><blockwx:for...

微信开发者工具导入项目提示:登录用户不是该小程序的开发者

有时候,我们在使用微信开发者工具导入别人开发好的项目时会提示:登录用户不是该小程序的开发者。如下图所示:这时候,找到“project.config.json”文件,我们需要修改项目中的“project.config.json”文件。使用记事本或者其他文本编辑器(不要使用word,否则会改变文件内容)打开“project.config.json”文件,将“appid”设置为自己的appid,然后保存并关闭文件,再次导入项目即可。...

微信小程序开发选取相册照片/拍照API调用

作者最近在探索微信小程序,有一个需求是让用户通过手机相册或者手机摄像头拍照上传图片。效果如下图所示:由于作者之前没有接触过微信小程序,看了微信小程序的开发手册后就开始写了。一开始的想法是这样的: 通过界面交互反馈的api来显示操作菜单,在操作菜单中如下定义名称,然后再判断执行在看api文档时,发现貌似可以直接调用图片api直接使用媒体中的图片api也可以很方便的获取预期效果,代码如下。只是这样微信web开发者工具不显示操作菜单,只有真机才显示操作菜单。最后,真机效果如下图所示:...

实战:第八章:支付宝Native,JSAPI支付与微信Native,JSAPI,MWEB支付实现

首先是H5的支付,先看控制层的代码@AutowiredAliPayH5BeanaliPayH5Bean;@AutowiredWxPayH5MWEBwxPayH5MWEB;@AutowiredWxPayH5JSAPIwxPayH5JSAPI;@LoginRequired(isNeedLogin=true)@ApiOperation("H5去支付,支付主接口,用于控制支付流程")@GetMapping(value="/h5/pay",produces={"application/json;charset=UTF-8"})@ResponseBodypublicObjectwxPrepay(StringorderSn,BigDecimaltotalAmount,Stringcode,StringchannelId){//正常开发情况下是根据用户登录的id和订单编号查询该订单是否为登录用户的订单并获取订单信息,订单价格是不会作为参数传入的,这里只是演示支付不做那么麻烦Stringresult="";if(PayConstant.CHANNELALIH5.equals(channelId)){Ma...

实战:第七章:微信H5支付时用户有微信分身停留5秒后未选择哪个微信分身,也未支付就被动回调到商户支付是否完成的页面...

三种问题:微信H5支付时用户有微信分身停留5秒后未选择哪个微信分身,也未支付就被动回调到商户支付是否完成的页面安卓H5支付设置了redirect_url后调起微信收银台5秒后回退到了原始界面微信支付中间页调起微信收银台后超过5秒答案:由于设置redirect_url后,回跳指定页面的操作可能发生在:1,微信支付中间页调起微信收银台后超过5秒2,用户点击“取消支付“或支付完成后点“完成”按钮。因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。...

微信H5支付时用户有微信分身停留5秒后未选择哪个微信分身,也未支付就被动回调到商户支付是否完成的页面

微信H5支付时用户有微信分身停留5秒后未选择哪个微信分身,也未支付就被动回调到商户支付是否完成的页面  安卓H5支付设置了redirect_url后调起微信收银台5秒后回退到了原始界面。这个时间可以加长一些吗?由于设置redirect_url后,回跳指定页面的操作可能发生在:1,微信支付中间页调起微信收银台后超过5秒2,用户点击“取消支付“或支付完成后点“完成”按钮。因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。...

实战:第六章:H5微信支付宝调试错误,请回到请求来源地,重新发起请求。 错误代码 insufficient-isv-permissions

接人H5手机网站支付支付时,已经将表单发给页面了,支付宝响应调试错误,请回到请求来源地,重新发起请求。错误代码 insufficient-isv-permissions 错误原因: ISV权限不足,建议在开发者中心检查对应功能是否已经添加。遇到这种问题,我查了一遍,这里给上几个链接:https://blog.csdn.net/ys_healone/article/details/97271807https://blog.csdn.net/sinat_32575213/article/details/79640627https://blog.csdn.net/solocao/article/details/82466990如果还有问题直接问支付宝技术客服:https://cschannel.alipay.com/newPortal.htm?scene=mt_zczx&token=39ad6447b09e41a7bf44d10d95bcfe3f035&pointId=&enterurl=https%3A%2F%2Fopen.alipa...

微信公众号 自动回复

<?phpinclude_once('./common.php');include_once('./config.php');$wechatObj=newwechatCallbackapiTest();if(!isset($_GET['echostr'])){$wechatObj->responseMsg();}else{$wechatObj->valid();}classwechatCallbackapiTest{//验证签名publicfunctionvalid(){$echoStr=$_GET["echostr"];$signature=$_GET["signature"];$timestamp=$_GET["timestamp"];$nonce=$_GET["nonce"];$token=TOKEN;$tmpArr=array($token,$timestamp,$nonce);sort($tmpArr,SORT_STRING);$tmpStr=implode($tmpArr);$tmpStr=sha1($tmpStr);if($tmpStr==$signat...
代码星球 代码星球·2020-09-06

php 微信公众号总是配置失败 需要返回 echostr变量 而不是true

<?php$signature=$_GET["signature"];$timestamp=$_GET["timestamp"];$nonce=$_GET["nonce"];$token='ssss';$tmpArr=array($token,$timestamp,$nonce);sort($tmpArr,SORT_STRING);$tmpStr=implode($tmpArr);$tmpStr=sha1($tmpStr);if($tmpStr==$signature){echo$_GET['echostr'];}else{returnfalse;} ...

Python爬虫小白入门(四)PhatomJS+Selenium第一篇

在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页。所以不能够通过页码获取页面的url来分别发送网络请求。我也尝试了其他方式,比如下拉的时候监控http请求,看看请求是否有规律可以模拟。后来发现请求并没有规律,也就是不能够模拟http请求来获取新的数据(也可能是我水平有限,哪位童鞋找到了规律一定要告诉我哦)。那么就只有模拟下拉操作了。想要模拟下拉操作,我们需要用到两个工具,一个是PhatomJs,一个是Selenium。PhatomJS其实就是一个没有界面的浏览器,最主要的功能是能够读取js加载的页面。Selenium实质上是一个自动化测试工具,能够模拟用户的一些行为操作,比如下拉网页。一直有个说法,Python+PhatomJS+Selenium是爬虫的无敌三件套,基本能够实现所有爬虫需求。OK,我们分别介绍下他们的使用,然后开始我们的实战。我的运行环境如下:系统版本Windows10。Python版本Python3.5,推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去A...

Python爬虫小白入门(三)BeautifulSoup库

上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据。这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据。updateon2016-12-28:之前忘记给BeautifulSoup的官网了,今天补上,顺便再补点BeautifulSoup的用法。updateon2017-08-16:很多网友留言说Unsplash网站改版了,很多内容是动态加载的。所以建议动态加载的内容使用PhantomJS而不是Request库进行请求,如果使用PhantomJS请看我的下一篇博客,如果是定位html文档使用的class等名字更改的话,建议大家根据更改后的内容进行定位,学爬虫重要的是爬取数据的逻辑,逻辑掌握了网站怎么变都不重要啦。我的运行环境如下:系统版本Windows10。Python版本Python3.5,推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。IDE我使用的是PyCharm,是专门为Python开发的I...

Python爬虫小白入门(二)requests库

为什么要先说Requests库呢,因为这是个功能很强大的网络请求库,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据。网络上的模块、库、包指的都是同一种东西,所以后文中可能会在不同地方使用不同称谓,不要迷惑哦。结合一个实例来讲解吧。我的一个设计师小伙伴常去一些设计类网站收集素材,其中有个网站Unsplash里面美图特别多,所以想要把里面的图片都保存下来,这样咱们的小爬虫就登场了。说干就干,赶紧开始吧。先来准备环境系统版本我使用的是Windows10。好多小伙伴使用的是Mac,配置上基本相同。由于我多年混迹于微软的开发平台,经常使用VisualStudio、SQLServer啥的,用Windows用习惯了(其实主要是因为Qiong穷!)。所以这个教程我就以Windows系统为例了。Python版本我电脑装了好多个Python版本(学一个装一个。。。),不过推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。IDE我使用的是PyCharm,是专门为Python开发的...
首页上一页...2627282930...下一页尾页