自编Python爬虫程序爬取国际动物健康组织oie.int有关h7n9疫情的数据
国际动物健康组织oie.int的网站基本情况
国际动物健康组织oie.int网站,提供了自己的搜索引擎,要想获取该网站的有关h7n9疫情的信息,必须通过该所有引擎。因为有关h7n9疫情的各种信息链接是通过javascript脚本动态生成。因此,我们可以借助selenium模拟浏览器来操纵网页并逐级获取有关信息。
技术难点:
通过webdriver启动chrome浏览器,并模拟人类操纵chrome并获取数据,具体涉及到以下的一些技术难点:
- 设置User-Afent参数 ,通过webdriver启动chrome浏览器,需要设置User-Agent参数,以便模拟人类操纵chrome;
- 引入WebDriverWait、By、expected_conditions等库,以便让浏览器等待所需的组件确实渲染到窗口中 比如:#search-keywords 查询框和.oe_inputSubmit提交按钮 ;
- 需要设计空的列表容器,以便将获取的数据按行插入列表结构中,这个列表结构需要一个二维列表,所以,对于二维列表的操作必须熟练;
- 用webdriver的find_elements_by_xpath或其他定位函数定位到页面中的元素,并获取该元素的值,然后进行必要的加工;
- 对于文献标题超链接,需要定位到,并通过click()函数切换到详细页面,获取到详细页面后,还需要再返回到前一个页面,继续获取下一个标题项的内容;
- 标题项和摘要、文献编号、所属页号插入到容器中后,还需要将该标题下获取的详细文献内容再追加到容器中该行的尾列;
- 对于105条文献,每页显示10条,则需要11页才能全部列全,所以,要设计翻页功能。并在程序中使用循环控制来处理;
- 页面切换之后,在回退回去,之前在该页获取到的超链接对象,并不在该页面元素中,所以必须重新定位获取。
- 最后就是将列表存入到文件中,存入csv文件中,需要注意,在open文件时,其参数中需要带encoding=‘utf-8’参数,否则,