查看原文
其他

Python爬虫之selenium爬取国际自然科学基金数据库(一)

爬虫俱乐部 Stata and Python数据分析 2022-03-15
        本文作者:杨长青



        文字编辑:杨慧琳



        技术总编:张学人

好消息!!!爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python编程技术定制培训。本次培训采用理论与案例相结合的方式,旨在帮助零基础学员轻松入门Python,由浅入深学习和掌握Python爬虫技术,并明确未来更进一步的学习方向。

详细培训大纲及报名方式,请点击文末阅读原文呦~


 在《知识练兵—爬取国家社科基金数据库》中我们介绍了如何爬取国家社科基金数据库数据,今天我们尝试爬取同为国家三大基金之一的国家自然科学基金项目数据。查询数据库网址如下:https://isisn.nsfc.gov.cn/egrantindex/funcindex/prjsearch-list?locale=zh_CN

该系统四个必填项包括:申请代码、资助类别、批准年度、验证码。在一系列的常规操作后(查看源代码、fidder捕捉真实链接),发现这个网站很难处理post的参数,而且在项目页翻页时仍有验证码。不过这个系统在疯狂的测试中仍然不封IP,让我们省去了一笔买代理的钱并且方便了我们的练习。最后小编决定拿出爬虫最后的大杀器——selenium。

selenium是一个用于Web应用程序测试的工具。selenium测试直接运行在浏览器中,通过模仿用户操作来解决反爬。selenium可以驱动谷歌浏览器、火狐浏览器以及在《爬取12306余票信息》中使用的无头浏览器PhantomJS。为了方便大家使用以及直观的看到selenium的运行过程,我们以下以驱动谷歌浏览器为例。

最终的驱动谷歌浏览器爬虫过程如下:

接下来,我们具体介绍如何使用selenium来爬取国家自然科学基金项目数据。

一、前期准备

① 通过pip install selenium安装selenium库;

② 安装和自己谷歌浏览器版本一致的chromedriver,下载网址为:http://chromedriver.storage.googleapis.com/index.html

③ 将下载的 chromedriver 放在谷歌浏览器的安装文件夹下,小编的文件夹是“C:\Users\dell\AppData\Local\Google\Chrome\Application”。

再将文件夹路径添加到环境变量即可:

二、安装测试

以上完成了selenium和chromedriver的配置,接下来我们来测试一下是否配置成功:

from selenium import webdriver #导入驱动模块webdriverdriver = webdriver.Chrome() #调用用环境变量中的谷歌浏览器创建浏览器对象url=r'http://wuhanstring.com'driver.get(url)

这样,selenium会自动驱动谷歌浏览器访问该网页链接,即爬虫俱乐部官网http://wuhanstring.com。

三、基本小命令

怎么实现获取网页源代码、获取当前网站的链接以及关闭窗口呢?实现这些功能的命令如下:

source = driver.page_source #获取网页源代码print(driver.title) #获取当前页面的titleprint(driver.current_url) #获取当前页面的链接driver.refresh() #刷新当前页面driver.close() #关闭当前窗口

 以上我们就介绍完成了selenium的安装、配置以及一些小命令。在下一篇推文中,我们将以爬取国家自然科学基金立项数据为例,介绍selenium的一系列功能,包括元素定位、填写元素值、模拟键盘动作、截取验证码图片进行破解等,敬请期待!

对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

往期推文推荐

关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存