很早之前就开始学习爬虫了,一直想学习爬取动态页面,正巧工作中需要用到一个船舶信息的网站,每次都是手动查询太麻烦了,昨天下午研究了一下午,总算搞透彻了,基本步骤如下:
1、启动浏览器
2、打开网页
3、模拟输入,模拟点击
4、稍等一会(很重要)
5、获取网页数据
6、清洗数据

代码分两部分,一部分保存为函数(Chrome_shipxy.py),另一部分作为程序调用函数,这样方便扩展多进程使用。

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import timedef func01(html): #拆分字符串line='';html2=[];bj=0;for j in range(0,len(html)):if bj==0 and html[j:j+1]=='<':line=line+html[j:j+1];bj=1;continueif html[j:j+1]!='<':line=line+html[j:j+1];continueif bj==1 and html[j:j+1]=='<':html2.append(line);line='';line=line+html[j:j+1];bj=1;html2.append(line);line='';return html2def func02(html2): #筛选需要信息sxzd=['si_mmsiFlag','si_shipType','si_shipStatus','si_length','si_beam','si_lat','si_lng','si_lastTime']; #国籍,类型,状态,船长,船宽,纬度,经度,最后时间wb1=[];wb2=[];for i in sxzd:bj=0;for j in html2:if i in j:wb1.append(j);bj=1;if bj==0:wb1.append('>无信息');for j in wb1:for i in range(0,len(j)):if j[i:i+1]=='>':wb2.append(j[i+1:len(j)])return wb2def func03(ship_name,wait_time): #主函数obj = webdriver.Chrome()obj.set_page_load_timeout(10)try:obj.get('http://www.shipxy.com/')obj.set_page_load_timeout(20)obj.find_element_by_id('txtKey').clear()   #用于清除输入框的内容,相当于clear()obj.find_element_by_id('txtKey').send_keys(ship_name)   #在输入框内输入Helloobj.find_element_by_id('butnQuery').send_keys(Keys.ENTER) #通过定位按钮,通过enter(回车)代替clicktime.sleep(wait_time) #让子弹飞一会儿(很重要)html = obj.page_sourcetime.sleep(2)html2=func01(html)html3=func02(html2)html3.insert(0,ship_name)except Exception as e:html3=['未获取到信息','无信息'];#print(e);finally:obj.close()obj.quit()return html3
import Chrome_shipxyif __name__=='__main__':ship_name=['SHINANO MARU','SEROJA LIMA','宝鑫通','桂翔1','嘉远3','建功308','顺恩','西马11','鑫源盛','兴达888','兴宁20','豫信货12262','忠泰'];for j in ship_name:html3=Chrome_shipxy.func03(j,5)if '无信息' in html3[1]:for i in range(6,31,2):html3=Chrome_shipxy.func03(j,i)if '无信息' not in html3[1]:breakprint(html3)

Python selenium爬虫抓取船舶网站数据(动态页面)相关推荐

  1. python小爬虫—抓取pixabay网站的图片资源

    这是一个免费下载图片的网站https://pixabay.com 这个网站有很多免费下载的图片我比较喜欢,一张一张下载我也懒得戳鼠标,所以我先搜索到我喜欢的图片分类,然后发现在doc里面的html文件 ...

  2. 用python通过selenium自动化测试抓取天猫店铺数据

    用python通过selenium自动化测试抓取天猫店铺数据 运行的环境在win10,软件用的是vscode.大家平常在抓取天猫店铺的时候登陆后会需要验证,我的方法是通过谷歌插件跳过天猫的登陆. 首先 ...

  3. 用爬虫抓取美联储演讲数据并分析金融政策

    用python抓取美联储数据 近日,笔者选择了一个任务,用爬虫抓取美联储演讲数据,并分析相关金融政策. 首先必须做的,是抓取数据. 打开美联储的网站Federal Reserve Board - Ho ...

  4. python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  5. python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  6. 抓取国外网站数据合法吗?法律分析

    在互联网时代,数据是一种非常珍贵的资源,而获取数据的方式也越来越多样化.抓取(爬虫)国外网站数据是一种获取数据的常见方式.然而,抓取国外网站数据是否合法呢?这是一个备受争议的话题.本文将从法律.道德. ...

  7. python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  8. python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  9. python爬虫能爬取微信密码吗_如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例...

    今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信 ...

  10. 2018最全如何利用Python网络爬虫抓取微信朋友圈的动态

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

最新文章

  1. C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板和友元
  2. 工作随笔——Intellij_idea-14官方快捷键中文版
  3. 北航计算机和上财金融,这所985财经学府,不招本科生,隐藏实力却已超过上财、央财?...
  4. .NET 面试题(2)
  5. ps法线贴图插件_法线与置换贴图原理讲解以及烘焙制作!
  6. Qt工作笔记-Qt文档阅读笔记-qualifiedName()的官方解析及XML使用名称空间
  7. php网页,想弹出对话框, 消息框 简单代码
  8. beginnersbook C 语言教程·翻译完成 | ApacheCN
  9. orm mysql nodejs_【译】Nodejs最好的ORM
  10. php简单实现二级联动
  11. java sql小区物业管理系统_小区物业管理系统javasql.doc
  12. word压缩软件,免费
  13. 在Edge浏览器中设置编码方式
  14. OCCT学习遇到的问题记录
  15. 【今日学长】来自柚子帮学长--英国留学租房攻略!
  16. 计算机主机的跳线怎么接,电脑主机的开关线怎么接,如何接电脑主板电源线 详细始末...
  17. incre在c语言,longest incresing sequence
  18. 计算机毕业设计ssm文理读书分享平台8xkh2系统+程序+源码+lw+远程部署
  19. [BZOJ 1778][Usaco2010 Hol]Dotp 驱逐猪猡
  20. OPTIONALLY ENCLOSED BY '`'不可删除引号的情况

热门文章

  1. 【笔记分享】Android TV 红外蓝牙遥控器添加
  2. 机器学习入门好文,强烈推荐
  3. Systemverilog中@和wait区别
  4. PAT合集1096 大美数 (15 分)
  5. Win10系统下安装CAD2006与CASS
  6. 北京大学数学科学学院2006\9\20声明:坚持真理、追求卓越zz
  7. R,L,C,t物理量之间的量纲关系
  8. linux drupal 7,在CentOS 7下试验Drupal 7
  9. 梦幻西游修炼金钱计算器
  10. 新手必备!最全电路基础知识讲解