- 博客(67)
- 收藏
- 关注
原创 python 类属性的简单性质和使用
python中的类属性是定义在class内部的,在def外面。类属性有两种,一种是int、string等不可改变的数据类型,另外一种就是list、dict等可以改变的类型下面介绍一个实例,区分两种类型的不同。类属性记录实例的个数class MyClass: counter = 0 # 类属性,不可改变类型 tricks=[] #类属性,可以改变类型 def ...
2019-07-24 20:20:16
313
原创 爬虫入门【11】Pyspider框架入门—使用HTML和CSS选择器下载小说
开始之前首先我们要安装好pyspider,可以参考上一篇文章。从一个web页面抓取信息的过程包括:1、找到页面上包含的URL信息,这个url包含我们想要的信息2、通过HTTP来获取页面内容3、从HTML中提取出信息来4、然后找到更多的URL,回到第2步继续执行~选择一个开始的URL我推荐一部小说给大家《恶魔法则》。今天我们从网上将这部小说的内容按照章节下载下来。小说目录的url...
2017-12-12 21:02:00
172
原创 爬虫入门【10】Pyspider框架简介及安装说明
Pyspider是python中的一个很流行的爬虫框架系统,它具有的特点如下:1、可以在Python环境下写脚本2、具有WebUI,脚本编辑器,并且有项目管理和任务监视器以及结果查看。3、支持多种数据库4、支持定义任务优先级,自动重试链接。。。5、分布式架构等等优点。pyspider的设计基础是:以python脚本驱动的抓取环模型爬虫。教程: http://docs.pyspide...
2017-12-11 21:38:00
160
原创 【Python基础】装饰器的解释和用法
装饰器的用法比较简单,但是理解装饰器的原理还是比较复杂的,考虑到接下来的爬虫框架中很多用到装饰器的地方,我们先来讲解一下。函数我们定义了一个函数,没有什么具体操作,只是返回一个固定值请注意一下缩进def sample(): return 1print(sample())作用域函数内部的变量和函数外的变量是不同的我们看一下下面的例子,locals()和globals()方法会...
2017-12-10 15:18:00
100
原创 爬虫入门【9】Python链接Excel操作详解-openpyxl库
Openpyx是一个用于读写Excel2010各种xlsx/xlsm/xltx/xltm文件的python库。现在大多数用的都是office2010了,如果之前之前版本的可以使用xlrd读,xlwt写,这里就不介绍了。入门范例from openpyxl import Workbookwb=Workbook()#创建一个工作簿ws=wb.active#获取工作的激活工作表ws['A1...
2017-12-09 12:36:00
229
原创 爬虫实战【13】获取自己的动态代理ip池
在爬取一些比较友好的网站时,仍然有可能因为单位时间内访问次数过多,使服务器认定为机器访问,导致访问失败或者被封。如果我们使用不同的ip来访问网站的话,就可以绕过服务器的重复验证,使服务器以为使不同的人在访问,就不会被封了。如何获取动态ip网络上有很多提供代理ip的网站,我们经常使用的一个是西刺免费代理ip,url='http://www.xicidaili.com/'我们来看一下这个网站的构...
2017-12-08 21:02:00
1183
原创 爬虫实战【12】使用cookie登陆豆瓣电影以及获取单个电影的所有短评
昨天我们已经实现了如何抓取豆瓣上的热门电影信息,虽然不多,只有几百,但是足够我们进行分析了。今天我们来讲一下如何获取某一部电影的所有短评论信息,并保存到mongodb中。反爬虫豆瓣设置的反爬虫机制是比较简单的,我们可以通过selenium模拟浏览器登陆这种终极办法来绕过,但是更加有效率的方法是设置请求头信息的cookie,是豆瓣认为在访问的就是一个用户,而不是机器。【插入图片,我的cook...
2017-12-07 20:20:00
1205
原创 爬虫实战【11】Python获取豆瓣热门电影信息
之前我们从猫眼获取过电影信息,而且利用分析ajax技术,获取过今日头条的街拍图片。今天我们在豆瓣上获取一些热门电影的信息。页面分析首先,我们先来看一下豆瓣里面选电影的页面,我们默认选择热门电影,啥都不点了。【插入图片,豆瓣热门电影页面】在选电影这个框中其实有很多标签的,这个其实可以在url设置,后面讲,现在就用热门好了。下面每部电影罗列出来,包括电影封面,评分,电影名称等信息。最下...
2017-12-05 22:33:00
324
原创 爬虫实战【10】利用Selenium自动登陆京东签到领金币
今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币。如何自动登陆京东?我们先来看一下京东的登陆页面,如下图所示:【插入图片,登陆页面】登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个、密码的形式登陆,就要切换一下。我们看一下这两种登陆方式是如何切换的,通过浏览器的元素检查,我们看一下两个标签。【插入图片,两种...
2017-12-04 22:23:00
197
原创 Python基础——原生数据类型(字典,列表,元组,字符串)
字典Dictionary字典定义了键值对的1对1管理。1、定义字典请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式。我们能通过key得到value,但是不能通过value得到key。还可以通过get方法得到对应key的value。d={'server':'mpilgrim','database':'master'}d{'database': 'm...
2017-12-04 20:38:00
249
原创 爬虫实战【9】Selenium解析淘宝宝贝-获取宝贝信息并保存
通过昨天的分析,我们已经能到依次打开多个页面了,接下来就是获取每个页面上宝贝的信息了。分析页面宝贝信息【插入图片,宝贝信息各项内容】从图片上看,每个宝贝有如下信息;price,title,url,deal amount,shop,location等6个信息,其中url表示宝贝的地址。我们通过查看器分析,每个宝贝都在一个div里面,这个div的class属性包含item。而所有的item...
2017-12-02 17:10:00
287
原创 爬虫实战【8】Selenium解析淘宝宝贝-获取多个页面
作为全民购物网站的淘宝是在学习爬虫过程中不可避免要打交道的一个网站,而是淘宝上的数据真的很多,只要我们指定关键字,将会出现成千上万条数据。今天我们来讲一下如何从淘宝上获取某一类宝贝的信息,比如今天我们以“手机”作为关键词,举个例子。分析页面的源代码【插入图片,淘宝手机页面示意】上面是搜索框,下面显示了很多宝贝信息,最下面是翻页的控制按钮。【插入图片,淘宝手机页面源代码】我们看一下这...
2017-12-02 15:42:00
2145
原创 爬虫实战【7】Ajax解析续-今日头条图片下载
昨天我们分析了今日头条搜索得到的信息,一直对图集感兴趣的我还是选择将所有的图片下载下来。我们继续讲一下如何通过各个图集的url得到每个图集下面的照片。分析图集的组成【插入图片,某个图集的页面】我们看上面的这个图片,右面的1/5可以看出,这个图集有5张图片,在图片上右侧点击的话,会打开下一张图片。我们来看一下这些图片的url在哪里?分析图集的源代码【插入图片,图集页的XHR信息】...
2017-12-01 20:22:00
110
原创 爬虫实战【6】Ajax内容解析-今日头条图集
Ajax技术AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。Ajax并不是新的编程语言,而是一种使用现有标准的新方法,当然也不是很新了,在97年左右,微软就发明了ajax的关键技术,但是并没有推广;随着Google eath、google suggest和gmail的广泛应用,ajax才开始流行起来。ajax最大的优点...
2017-11-30 21:05:00
105
原创 【穿插】Python基础之文件、文件夹的创建,对上一期代码进行优化
在上一期妹子图的爬虫教程中,我们将图片都保存在了代码当前目录下,这样并不便于浏览,我们应该将同一个模特的图片都放在一个文件夹中。今天我们就简单讲一下Python下如何创建文件、文件夹,今后就可以用上了。1、搞清楚相对路径和绝对路径绝对路径比较好理解,就是最完整的路径,包含盘符的,比如D:\user\abc.txt,表示的就是D盘目录下,user文件夹中的abc.txt文件。当然在代码中,\是...
2017-11-27 21:05:00
93
原创 爬虫实战【5】送福利!Python获取妹子图上的内容
【插入图片,妹子图首页】哈,只敢放到这个地步了。今天给直男们送点福利,通过今天的代码,可以把你的硬盘装的满满的~下面就开始咯!第一步:如何获取一张图片假如我们知道某张图片的url,如何获取到这张图片呢?先看一下最简单的方法:【插入图片,单页url】我们获取到图片的内容,通过二进制流写入到文件中,并保存起来。这次偷懒啦,将所有图片都保存在当前目录下。import reques...
2017-11-26 19:39:00
329
原创 爬虫实战【4】Python获取猫眼电影最受期待榜的50部电影
前面几天介绍的都是博客园的内容,今天我们切换一下,了解一下大家都感兴趣的信息,比如最近有啥电影是万众期待的?猫眼电影是了解这些信息的好地方,在猫眼电影中有5个榜单,其中最受期待榜就是我们今天要爬取的对象。这个榜单的数据来源于猫眼电影库,按照之前30天的想看总数量从高到低排列,取前50名。我们先看一下这个表单中包含什么内容:【插入图片,6猫眼榜单示例】具体的信息有”排名,电影海报,电影名称...
2017-11-25 20:37:00
880
原创 爬虫实战【3】Python-如何将html转化为pdf(PdfKit)
前言前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了。但是,我们获取的只有文章中的文本内容,并且是没有排版的,看起来也比较费劲。。。咋么办的?一个比较好的方法是将文章的正文内容转化成pdf,就不要考虑排版的事情了,看起来比较美观,也不会丢失一些关键信息。python中将html转化为pdf的常用工具是Wkhtmltopdf工具包,在python环境下,p...
2017-11-23 22:01:00
179
原创 爬虫实战【2】Python博客园-获取某个博主所有文章的URL列表
Python博客园-获取某个博主所有文章的URL列表首先,我们来分析一下,在博主的首页里,每个文章的标题在网页源码中是什么样子的。【插入图片,文章标题1】【插入图片,文章标题2】通过这两个图片我们可以看出,博文标题所在的标签为,并且具有class属性为"postTitle2",其href属性就指向这篇博文的地址。如下面代码所示:<a id="homepage1_HomePag...
2017-11-22 23:31:00
339
原创 爬虫实战【1】使用python爬取博客园的某一篇文章
第一次实战,我们以博客园为例。Cnblog是典型的静态网页,通过查看博文的源代码,可以看出很少js代码,连css代码也比较简单,很适合爬虫初学者来练习。博客园的栗子,我们的目标是获取某个博主的所有博文,今天先将第一步。第一步:已知某一篇文章的url,如何获取正文?举个栗子,我们参考‘农民伯伯’的博客文章吧,哈哈。他是我关注的一个博主。http://www.cnblogs...
2017-11-22 21:02:00
391
原创 爬虫入门【8】Python连接MongoDB的用法简介
MongoDB的连接和数据存取MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展。包含数据库,集合,文档等几个重要概念。我们在这里不介绍MongoDB的特点和用法了,感兴趣的可以查一下官方文档。在此重点介绍如何使用python连接MongoDB,并通过PyMongo操作MongoDB数据库。这里默认MongoDB已经安装好啦,安装教程可以参考:ht...
2017-11-21 21:24:00
111
原创 爬虫入门【7】Python-文件的读写和JSON
文本文档的读写最重要的open()方法将返回一个file对象,经常使用的两个参数为open(filename,mode)其中,filename为file保存的地址,可以是本地地址,相对地址或者绝对地址。mode对象为对file对象进行的操作'''对这个方法进行一些解释open(file, mode='r', buffering=None, encoding=None, errors=No...
2017-11-20 22:03:00
62
原创 爬虫入门【6】Selenium用法简介
Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器。如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。我们在Python里面安装Selenium的话,就可以调用浏览器来访问web界面了。下载WebDriver...
2017-11-20 22:02:00
97
原创 爬虫入门【5】PyQuery简介
PyQuery目前最新的版本是1.3,基于最新版本进行介绍。主要根据PyQuery的官方文档进行了更新。from pyquery import PyQuery as pqfrom lxml import etreeimport urllibdoc=pq('<p id="hello" class="hello"></p>')#解析文档的基本方法p=doc('p'...
2017-11-18 21:40:00
67
原创 爬虫入门【4】正则表达式用法简介
特殊字符的含义首先推荐使用r'string'来定义字符,免去转义字符\的影响。#'.',点号,在默认模式中,匹配任何一个字符,除了新的行newline。如果DOTALL标记指定了,那么还可以匹配newline。# '^',匹配字符串的开始# '$',匹配字符串的结束。比如foo匹配foo或者foobar,但是foo$只能匹配到foo。# '*',匹配0个或者多个字符,比如ab*,可以匹配...
2017-11-18 13:19:00
52
原创 爬虫入门【3】BeautifulSoup4用法简介
快速开始使用BeautifulSoup首先创建一个我们需要解析的html文档,这里采用官方文档里面的内容:html_doc = """<html><head><title>The Dormouse's story</title></head><body><p class="title"><b>...
2017-11-17 22:25:00
81
原创 爬虫入门【2】Requests库简介
发送请求使用Requests发送网络请求很简单#首先要导入requests库import requests#返回一个Response对象r=requests.get('https://github.com/timeline.json')#由此可以看出来Requests的API十分简单,#post请求r=requests.post('http://httpbin.org/post'...
2017-11-16 22:40:00
127
原创 爬虫入门【1】urllib.request库用法简介
urlopen方法打开指定的URLurllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) url参数,可以是一个string,或者一个Request对象。data一定是bytes对...
2017-11-16 18:17:00
222
原创 NumPy入门基础【2】
通用函数ufunc一元ufunc举例:1、abs、fabs:计算绝对值,fabs更快2、sqrt:计算各元素的平方根,相当于arr0.53、square:计算各元素的平方根,相当远arr24、exp:计算各元素的指数e的x次方...二元ufunc举例:1、add:将数组中对应的元素想加2、subtract:从第一个数组中减去第二个数组中的元素3、multiply:数组元素相乘...
2017-11-15 21:58:00
44
原创 Pandas入门
pandas的数据结构介绍主要包含两个数据结构,Series和DataFrameSeries类似于一维数组,有数据和索引。默认创建整数型索引。可以通过values和index获取数据和索引。from pandas import Series, DataFrameimport pandas as pdimport numpy as npobj=Series([4,7,-5,3])o...
2017-11-15 21:18:00
85
原创 HTML使用post方式提交中文内容出现乱码的错误解决方式
今天在做一个例子的时候,使用post方式提交表单,如果有中文的话,在另一个页面显示出来的时候,总是会出现乱码;但是将提交方式改为get的时候,就不会出现这种错误。详细错误见下面图片和代码。HTML代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Co...
2017-08-22 19:12:00
1127
原创 Python PhatomJS 和Selenium动态加载页面 获取图片内容
如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python![](http://images2017.cnblogs.com/blog/993869/201711/993869-20171118215516327-881787609.jpg)随笔中的代码拷贝自http://www.cnblogs.com/Albert-Lee/p/6275146.html感谢阿里波特,通过学习...
2017-03-26 17:31:00
54
原创 C#基础——winform应用上传图片到SQLServer数据库
前言之前通过winform与SQL Server的交互一直局限于文本、数字等信息,都可以通过string的方式来传输,但是比如音乐、图片等特殊格式的文件要如何与SQL Server数据库进行交互呢?今天主要讲通过文件流的方式,将特殊文件转换成二进制,然后存储到数据库中。在实际的应用中,如果文件较大或者较多,直接存储在数据中会造成一定的压力,可以转为保存文件名,然后在实际使用的地方调用改文件...
2016-12-13 20:44:00
657
原创 C#基础——全局静态类中的静态类变量的设置
前言 今天在设计一个系统用户管理界面的时候,出现了一个问题: 由于要在不同窗体之间传递数据,所以想到了要设置全局变量,比如一个用户有属性,ID,UserName,UserPwd和UserPower,为了简便,设定了一个Manager的类,管理这四个属性。然后设置了一个静态类,ModuleParas,有一个静态类变量manager。结果出现了可访问性不一致的问题。代码...
2016-12-06 22:17:00
568
原创 C#基础——系统登录功能的实现
一般的登陆界面,都是利用用户名和密码在数据库的匹配关系,来实现登陆的跳转功能。首先介绍用户数据表的设计。其中ID列需要设置好增量标识,随着用户的增加,ID的值递增,避免重复。然后是C#中对数据库的操作类。 1 class DataBase 2 { 3 public static string Login_ID = ""; ...
2016-12-03 23:24:00
496
原创 C#基础——静态成员,static关键字
当声明一个类成员为静态时,意味着无论创建多少个类的对象,只会有一个该静态成员的副本。关键字static意味着只有一个该成员的实例。静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。比如,定义类的成员变量为static的:1 class StaticVar2 {3 public static int num;4 ...
2016-12-01 19:43:00
136
原创 C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式
前言作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路!程序界面功能说明打开文件按钮,可以由使用者指定要操作的Excel文件,并在后面的textBox中显示出文件路径。设置单元格按钮,可以根据程序设置Excel文件的内容。退出程序按钮,关闭窗体。程序源代码 1 using...
2016-11-30 20:57:00
313
原创 Java 在指定目录建立指定文件名的文件 并输入内容
1 package runoob; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 ...
2016-08-17 22:37:00
306
原创 JSP基础——属性保存范围和request对象
JSP属性保存范围 JSP中提供了四种属性保存范围,分别为page,request,session及application。 1、page范围,指设置的属性只在当前页面有效。通过pageContext的setAttribute()方法来设置属性,通过pageContext的getAttribute()来取得属性. 代码范例: <%...
2016-08-16 19:54:00
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人