一、前言

刚开始的时候学习只是为了学习,根本就不知道是怎么用的,学习了语言花费了4个月,学习分析可视化花费了3个月,学习机器学习又花费了3个月,由于不是科班,所以一直处于想做项目而没有门路的处境。一度在想,关于深度学习和AI对我来说是不是只是一个遥不可及的梦或者空中楼阁,我学习的这些东西到底有什么用?或者该怎么用呢?直到近期学习了爬虫,一步步运用一些基本的东西(原谅我,还是处于这么菜的位置,深深自责)来解决实际问题,才使我感觉到坚持学习还是有用的,厚积爆发和自律带来的自由是那么的妙不可言。在大神崔老师(献上我个人感觉讲解爬虫最好的资源Python爬虫学习系列教程 | 静觅)的文章指引下,在公司需求的背景下,学习了基于selenium和pyquery爬取淘宝信息并将其从mongodb中导出为csv文件的相关知识内容,在这里稍微总结一下,以便后续学习和实践,也请各位大神多多指教。

二、环境的相关搭建

1.anaconda的安装: Downloads | Anaconda(根据自己的需要进行安装即可)

2.Google浏览器的安装:谷歌浏览器_谷歌浏览器官方下载【Google Chrome最新】-下载之家(注意下载的版本后面用的到,可以打开浏览器,点击右上角-帮助-关于Google查看)

3.selenium的安装:命令行pip install selenium即可

4.Chromedriver的安装:chromedriver与chrome各版本及下载地址 – CSDN博客(注意要与自己下载的Google相互匹配,否则运行程序会报错)

5.MongoDB的安装:MongoDB Download Center | MongoDB

安装过程需要注意以下几点:

(1)

选择custom即可。

(2)安装结束后一般bin的路径为:

(3)这时候需要在bin的所在位置建立一个名为data的文件夹:

(4)打开data文件夹,建立一个新的db文件夹:

(5)进入db文件夹,并且复制其路径:C:MongoDBServer3.6datadb(最好为这个,不然后续启动mongo报错)

(6)进入bin 文件夹,然后shift+右击选择在此打开命令窗口,进入cmd 输入:mongod –dbpath C:Program FilesMongoDBServer3.6datadb回车

(7)回车后一定不要关闭这个命令窗口,而是直接进入bin文件夹下,shift+右击进入一个新的命令窗口,然后输入mongo回车可以看到正常运行,可以输入db回车,输出为test,然后利用db.test.insert()插入内容

(8)配置MongoDB为系统服务:windows+x 打开命令窗口(管理员),然后通过如下的简单操作进入bin 文件夹(我的为3.6版本)

随后进入data文件夹,然后建立一个logs文件夹,在其里面建立一个mongo.log的文本文档

复制一下该文本文档的路径后续使用,路径为下图中的红线

下面在上述打开的cmd里输入如下命令,其中logpath 后面的就是上述的路径

计算机–管理–服务和应用服务–服务–找到MongoDB然后右击点击启动可以发现MongoDB启动成功

6.MongoDB的数据可视化客户端的安装:Robo 3T – formerly Robomongo — native MongoDB management tool (Admin UI)下载robo3T即可

7.程序中用到的库requests、pyquery、pymongo、re 可以用pip install 来安装,其中BeautifulSoup用pip install beautifulsoup4安装第四版本

至此:环境搭建完毕,如果不想应用Google浏览器(因为一启动程序就会跳出)可以自行尝试Phantomjs

三、程序

1.首先是声明:

其中配置文件config1中的文件内容为:

2.进入页面并且获取页数信息total.text=“共多少页”(selenium的text属性获取对应的文本内容):

其中wait_until的使用方法可以看selenium的wait 官方文档:5. Waits — Selenium Python Bindings 2 documentation下面为其内置的等待条件

值得注意和对比的是browser.implicitly_wait(time)和time.sleep(time)与上面的区别

3.根据用户的输入页数输出该页的内容

值得注意的是wait.until(EC.text_to_be_present_in_element())的用法,目的是为了确保输出的是用户指定的页码

可以自行添加元素

4.存储MongoDB和运行

至此程序部分完成运行的结果输出在了MongoDB里

那么最后一个问题,如何导出数据到excel里而可以用于编辑呢?菜的我选用了一种最简单的方法,就是转化为csv

四、导出为csv

1.首先仍然要进入bin目录下,打开cmd ,输入如下命令,其中-d 后面的为db名,-c后面的为collections名,-f 后面的为表头内容,即要输出的内容归属,-o 后面的为文件名

随后可以type cosmetic.dat 在cmd里验证输出,且会发现在bin文件夹里会多一个cosmetic.dat的文件。

发现cmd里的输出中文乱码,改文件名为cosmetic.csv用excel打开(注意用数据-自文本方式打开),其中跳出的几个界面:

修改为分隔符号、UTF-8

修改为逗号分隔

其他的不用管理,脑残按键就行,发现输出结果为:

 要哭了!YOU BUILD YOU RUN IT!

2.editplus、notepad、dreamweaver、等文本代码编辑器闪亮登场

我选择了editplus下载:EditPlus – Download Free Trial

然后用其导入cosmetics.csv文件,并且设定Tools—-configure User Tools—file 设定为UTF-8,随后保存文件,其中Encoding 改为ANSI格式

随后再用EXCEL打开则正常输出:

五、总结

时间成本远大于效果,但是可以帮助公司解决一点实际问题还是很有成就感的,虽然还是菜鸟弱鸡,但是心里永远有一个AI梦,希望以后多学习,多总结,多向大神们请教!

致死奉句:YOU BUILD YOU RUN IT!!!!!

文章来源于互联网:基于selenium 和pyquery的淘宝信息爬虫以及mongod存储和csv导出

发表评论