0x01 初步接触动态数据抓取

在开始学爬虫的时候会接触到一些使用普通的抓取方式获取不到的信息

比如京东的任意商品的价格

例如我们想抓取到 白夜行 这本书的价格

代码如下:

运行后会发现抓取到的数据为空

查看源代码的时候会发现源代码中并不存在

所以可以得知我们需要抓取的数据是动态数据

0x02 selenium和phantomjs配合的简单用法

抓取动态数据的方法有多种,使用selenium模拟浏览器进行动态抓取是其中的一种方法,具体的安装与使用请看这里

===> selenium的安装以及使用

接下来是安装phantomjs,phantomjs下载地址 安装的教程也可以百度的到,就不贴出来了

因为使用selenuim进行模拟抓取的时候,会打开浏览器,显得很不方便,所以就使用phantomjs这个“无头浏览器”来模拟页面数据的抓取。

Phantomjs的相关介绍如下:

PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。

掌握了selenuim的基本用法之后,就可以开始写代码了

哟呵,大功告成啦~

0x03 批量删除微博

值得一提的是,一开始我是用Phantomjs模拟登陆微博的时候发现使用

使用xpath匹配的方法,有的时候会出现无法点击a标签或者是div标签的情况,为了避免这种情况发生可以通过css选择器选定id属性,然后执行点击动作。为了解决上面的问题,需要在python脚本里执行自己写入的js语句即可,给没有id的标签添加上id属性,通过css选择器选择即可点击。

代码如下

一切准备工作都做好了接下来可以开始写脚本运行啦

运行~大功告成,慢慢删吧~

代码写的很粗糙,欢迎表哥们的指点 ↖(^ω^)↗


0x01

其实python对用户还是相对来说比较友善的,安装的时候一般只要人品不是差的没办法救了,都不会出现什么太大的问题 2333333333(像我这样人品这么差的都没出现啥问题)
然后就是安装pip啦,这里就不做赘述了,反正pip大法好,用过的人都知道
安装pip还有一个原因就是,如果未来装错了,或者是不需要某个模块的话,可以使用 pip uninstall 模块名称进行卸载
在这里推荐一个pip安装的非常好的教程 windows下面安装Python和pip终极教程
接下来就要做一件
很伤人的事情了
对,是就是开始安装scrapy的各种各样的折腾了

 

0x02

我一直觉得scrapy的安装简直是我人生的一大挫折,起码来来回回重复了10遍,而且前9次装上了都是不可以用的 T_T
实不相瞒,真是痛苦
摸索很久之后终于找到了一个一次就可以安装成功的绝佳方法

首先去官网下载一个VCForPython27.msi
这个是链接点我点我!

先安装wheel,直接在cmd里面运行
pip install wheel

再安装lxml
这绝对是一个比较好的模块,也是安装scrapy之前必须安装的模块,xpath学好之后会发现人生不需要使用正则表达式是一件多么幸福的事 (╭ ̄3 ̄)╭♡
在此我是绝对不推荐表哥们使用pip命令安装的,因为接下来你可以看到一系列让你崩溃的报错
不要问我是怎么知道的!(╯‵□′)╯︵┻━┻
去网站下载.whl文件
这里是链接,如果不翻墙的话,也许会很卡~ 点我点我!没错就是我!
记得要找对应版本的文件
我这里下载的是 lxml-3.7.3-cp27-cp27m-win_amd64.whl 因为我装的是64位的python,2.7版本的
下载好之后,将文件放在某一个盘里
我放在了G:/py/里面
在cmd中运行
pip install G:/py/lxml-3.7.3-cp27-cp27m-win_amd64.whl/
安装成功啦!!!!

接下来就是最最最最心酸的一步,其实话说回来,如果前面装的方式都是正确的话,这一步就显得极其简单了
直接运行cmd
pip install scrapy
安装成功!

你以为这就结束了??
天真!
scrapy怎么会这样轻易的放过你??

最后一步是安装win32api运行文件的时候会用得上
好啦,直接去官网下载一个对应版本的就阔以了~
点我点我233333
然后双击打开,安装,一气呵成~ ʅ(´◔౪◔)ʃ 不会报错就是神清气爽
接着修改一下环境变量
添加如下的一句话
E:\Sakura\python27\Lib\site-packages;

至此,斗智斗勇结束啦~

0x03

其实我原本是不打算写这一段的,但是还是要感叹一下
这就是人生啊

0x01

在经历scrapy怎么也装不上,后来装上也不能用,以及继续在比赛和挖洞中被各路师傅吊打之后
我真的决定要改行了!

才怪~

0x02

首先抓包,因为知乎是有防爬机制的,抓到请求包之后,直接copy到代码里

(我真的有很认真的码掉我的cookie~)
最开始写这个爬虫的时候,我是用的正则匹配,但是匹配出来的不是很对
最开始的正则表达式"Title">(.*?)</a></h2>

 

但是抓到的东西异常的奇怪,然后放弃了
尝试使用xpath
xpath真的是神器,用过都说好,总比想半天去写正则表达式好太多,接下来直接上代码,不废话了,我是直接写入到一个文本里的

运行之后可以直接查看文本

大概就是酱紫了

0x03

关于中间出现的问题,在使用requests.get获取页面的时候,配合使用xpath要记住转为文本格式(感谢al0ne表哥的提示)

还有关于ASCII码的问题,添加

即可

虽然是个小的不行的程序,但是爬下了首页还是神清气爽

1.urllib.urlopen(url[,data[,proxies]])

打开一个url,返回一个文件对象

urlopen返回对象提供方法:

–         read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样

–         info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息

–         getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到

–         geturl():返回请求的url

2.urllib.urlretrieve(url[,filename[,reporthook[,data]]])

存储文件,如果不制定filename,会存为临时文件