python数据抓取的介绍_利用Selenium制作python数据抓取,以及对Selenium资源介绍

当当当~第三篇博客开始啦~

这次的话题是数据抓取。终于到了核心部分的探讨,我的心情也是非常激动啊!如果大家baidu或者google(如果可以的话)数据抓取或者data crawling,将会找到数以千计的例子。但是大多数的代码非常的冗长,并且许多代码还是抓取静态数据之后,对动态JS写成的数据却毫无办法。或者,利用HTML解析网址后,再找到JS写的数据页面来寻找到所想要的数据。

但是!不知各位是否有发现过,如果打开chrome或者safari或者各种浏览器的审查元素。网页上能看到的数据,其实都会载到里面。可当转移到源代码的时候,JS写成的数据却都消失了!可我们为什么要从源代码中找数据,却不直接从审查元素中找呢?带着这个问题,我历经千险,穿越了各种国外的社区论坛以及插件包,终于找到了答案。

首先介绍今天的主角!

interpreter:Selenium

既然是interpreter,Selenium是可以按照我第一篇博客的做法下载的。PhantomJS呢,可以直接通过我给的链接里面进行下载。当两个都安装完毕,就能正式地开始进行数据抓取了。当然例子就是我的博客啦~

首先上范例代码

#-*-coding:utf-8-*-#

from selenium importwebdriverdefcrawling_webdriver():#get local session of PhantomJS

driver = webdriver.PhantomJS(executable_path='/Users/***/phantomjs/bin/phantomjs', port=65000)

driver.set_window_size(1024, 768) #optional

driver.get("http://www.cnblogs.com/Jerrold-Gao/") #Load page

#start crawling data

data=driver.find_element_by_id("sidebar_scorerank").text#print to check my result

print(data)#quit the driver

driver.quit()if __name__ == '__main__':

crawling_webdriver()

是否有被python精简的语言惊叹到呢?这就是python插件功能包的强大之处。

我需要提醒几个注意点:一、PhantomJS的路径和端口是一定要寻找的。在国内某篇文章中不知为何去掉了路径和端口,神奇的是,居然程序还能运行。我试了几回,都无法像它一样运行。二、请务必在最后quit driver,不然对内存的占用是会越来越大的。

这样的代码就可以对本页面的数据进行抓取了,结果是:

可是,如果是想抓取超级链接呢?通过以上的代码,依样画葫芦,仍然是找不出来的。这里有个简单的技巧:

#crawling a link

data=driver.find_element_by_id("homepage1_HomePageDays_DaysList_ctl00_DayList_TitleUrl_0")

url=data.get_attribute("href")

将id属下的区块,提取出href的部分,就能找到链接了。这里找到的是:

=================================这里是另起主题的分割线===================================

关于Selenium,无论是国内还是国外,都算火过一阵子了。比起openpyxl,它在主页上的注释也清晰很多。这里介绍几个我觉得比较好用的资源。

由于它官网莫名掉线,所以首当其冲的资源就是python-Selenium站了,上面有很多对代码的注解,十分实用。

其次,对国内的同学来说,最好的网站便是中文站了,虽然人数不是很多,但是讨论还是挺丰富的。

最后,便是万能的stackoverflow啦,国内上这个站速度总是有点慢,其实还是很怨念的。

=================================我是来返场的分割线======================================

本日吐槽:有次和友人逛博物馆。朋友说,博物馆其实好奸诈,一大面雪白的墙挂一幅画,你看到画后也不会立刻有比较对象,就会觉得“这好有艺术感啊”的奇妙感觉。我回答说,就和西欧的料理一样嘛,一个大白盘摆一小叠食物,感觉就会很精致的。朋友深表赞同地说,对啊,这么大的留白,摆什么都好看。我低头轻轻笑了一下,说,什么时候把我的代码也挂上去。

在家随便做的法式甜酒鸭胸肉(Magret de Canard)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值