船讯网根据获得的MMSI信息对于每个对应船舶的信息进行爬取

船讯网网址:http://www.shipxy.com/
这里爬取的内容包括了船舶的mmsi,imo,船舶宽度,船舶长度,船舶吃水深度等比较详细的信息,大体思路是根据Post得到数据然后我导入了mysql的数据库里。

mmsi数据是我之前爬取船舶的运动轨迹的时候就已经爬取得到了的。

代码原来是CSDN上一位学者根据船名爬取MMSI改的,他那个数据请求方式是get,稍有出入。


首先登陆 船舶网 发送请求,对其request method进行查看。可以发现数据的请求方式是post。


再看数据需要输入的内容,这里只有mmsi。


再看输出,在preview里面,就是我们要得到的内容。


关于爬虫的代码我附在最后,这个也是我写的第一篇CSDN,作为自己的心得记录,希望可以和更多的人一起交流~

import requests
import os
import time
import pymysql
import pandas as pd
import re
import random'''
author:longcheng
function:通过读取船舶数据,分别请求拿到dict数据入库
'''#定义入库的类
class company_ship_in_database:def __init__(self):self.conn = pymysql.connect(host="",port=, user="", password="", database="", charset="utf8")self.cursor = self.conn.cursor()self.last_path = os.path.abspath(os.path.dirname(os.getcwd()))#写入mysqldef in_database(self,data_list):#data_list为所有数据的列表j=1sql = ""for i in data_list:# if self.if_inbase(i['mmsi']):##     update_sql="UPDATE trail_info SET source = '"+ str(i['source']) +",shipid = '"+str(i['shipid']) +" WHERE mmsi = '" + i['mmsi'] + "'"##     self.cursor.execute(update_sql)#     self.conn.commit()#     print("已经更新第" + str(j) + "条")# else:insert_sql='insert into trail_info(mmsi,imo,name,callsign,length,width,trail,draught,lon,lat,sog,cog,hdg,rot,navistatus,lastdyn,satelliteutc) values("{}","{}","{}","{}",{},{},{},{},{},{},{},{},{},{},{},{},{})'.format(i['mmsi'],i['imo'],i['name'],i['callsign'],i['length'],i['width'],i['trail'],i['draught'],i['lon'],i['lat'],i['sog'],i['cog'],i['hdg'],i['rot'],i['navistatus'],i['lastdyn'],i['satelliteutc'])# print(insert_sql)self.cursor.execute(insert_sql)print("已经插入第" + str(j) + "条,mmsi = "+ i['mmsi'])self.conn.commit()j=j+1"得到需要查询信息的mmsi"def get_mmsi(self):mmsi_sql = "select distinct mmsi from trail3 order by mmsi"self.cursor.execute(mmsi_sql)mmsi_group = self.cursor.fetchall()return mmsi_group#请求船的方法def company_ship_in_database(self):mmsi_group = self.get_mmsi()data=[]j = 0for i in mmsi_group:chuan=i[0]dic2 = {'mmsi':chuan}# rq=requests.get("http://searchv3.shipxy.com/shipdata/search3.ashx",params=dic)rq2 = requests.post("http://www.shipxy.com/ship/GetShip",data=dic2)if rq2.status_code==200:try:import jsonresult2 = json.loads(rq2.text)data.append(result2['data'][0])print("mmsi:",chuan)# df = pd.DataFrame.from_dict(result2['data'][0], orient='index')# df = df.T# print()except:data.append([""])else:print(chuan + "请求错误")# time.sleep(random.random())j = j + 1if divmod(j,100)[1] == 0:print("已经请求" + str(j) + "条")print("已完成查询,准备入库....")self.in_database(data)return dataif __name__=="__main__":company_ship=company_ship_in_database()data = company_ship.company_ship_in_database()

欢迎大家一起交流哦~

详细船舶信息爬虫教程:船讯网根据MMSI爬取对应船舶属性信息|附python爬虫代码相关推荐

  1. 爬虫|巨潮资讯网上市公司年报爬取

    爬虫|巨潮资讯网上市公司年报爬取 import pandas as pd from selenium import webdriver from selenium.webdriver.common.k ...

  2. Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)

    Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1) 1.  爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: ...

  3. AIS数据爬虫---以船讯网为例

    [01] 船舶自动识别系统(Automatic Identification Systems, AIS)是一种应用于船和岸.船和船之间的海事安全与通信的助航系统,在减少船舶碰撞事故等海事服务中发挥重要 ...

  4. Python爬虫自学之第(⑤)篇——爬取某宝商品信息

    题外话: <Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元>相信过去BTC的人,信不信未来的PI,了解一下,唯一一个高度与之持平的项目 能看到这里说明快进入动态网页 ...

  5. 爬虫利器Pyppeteer的介绍和使用 爬取京东商城书籍信息

    提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器,提供了功能丰富的API 接口,经常被我们用作爬虫工具来使用.但是 seleniu ...

  6. 爬虫利器Pyppeteer的介绍和使用 爬取京东商城书籍信息!

    提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器,提供了功能丰富的API 接口,经常被我们用作爬虫工具来使用.但是 seleniu ...

  7. python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址

    认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...

  8. 爬虫|基于船讯网实现AIS数据爬虫 船讯网轨迹数据以及轨迹信息

    获得所需要的MMSI import requests import json # 获取 MMSI url_MMSI = "https://www.myships.com/ms/label/g ...

  9. 爬虫实战——求是网周刊文章爬取(一)and 爬虫基本原理

    @R星校长 第1关:获取新闻url 任务描述 本关任务:编写一个爬虫,并使用正则表达式获取求是周刊2019年第一期的所有文章的url.详情请查看<求是>2019年第1期 . 相关知识 获取 ...

  10. Python爬取网站用户手机号_用Python爬虫爬取学校网妹子QQ号,100行代码撩妹,用技术脱单...

    前言: 其实这个项目没什么难度,稍微懂一点爬虫的人或者是已经就业的程序员都可以用自己学的编程语言写出来,但是正是这也原因,也间接证明现在网络很多安全问题的存在,简单的说就是这个网站的程序员偷懒,让用户 ...

最新文章

  1. excel字段自动java类,Java 接口自动化系列--工具类之Excel测试数据解析封装
  2. python打印星星居中_python中怎么打印星星
  3. Windows 7/8/8.1 硬盘安装法实现 ubuntu 14.04 双系统
  4. canvas的简单实例集合
  5. Eclipse 插件开发 向导
  6. 数据库系统中数据抽象的三级结构
  7. 最小路径和--p64--动态规划
  8. wav pcm数据是带符号的吗_UE4 C++基础教程 - 基础数据结构
  9. Exchange Server 2016 独立部署/共存部署 (三)—— 安装Exchange程序
  10. PancakeBunny获160万美元战略融资,Binance Labs领投
  11. 聊聊spring的ioc
  12. Erlang之父Joe Armstrong去世
  13. 移动端网页开发注意点
  14. power系列服务器问题PA模板,与 Power BI 报表服务器集成
  15. arcengine cliasic code(转)基于ArcGIS Engine + C#实现用户自定义动态电力符号
  16. 小强统一认证中心-项目工程介绍
  17. 解决WiFi共享大师频繁掉线问题
  18. 树莓派 python 驱动 lcd tft spi 1.8寸 ST7735S
  19. EasyExcel删除模版Sheet页
  20. div显示在上层_怎样设置一个DIV在所有层的最上层,最上层DIV

热门文章

  1. 【数据结构导论】考试笔记总结(一)
  2. python 发送邮件正文字体设置_python 发送邮件
  3. Dell笔记本降低Bios版本简单而可靠的方法(1.15亦成功降级)
  4. 1人30天44587行代码,分享舍得网开发过程
  5. 常用USB芯片介绍(转串口、SPI 、单片机读写U盘)
  6. 怎样才能提取图片中的文字
  7. fedora 29 使用百度网盘客户端
  8. html手机页面怎么保存图片,【答疑】你知道手机怎么保存网页长图吗?超简单!...
  9. 改之理java文件_apk改之理反编译错误,来大神
  10. 202012月计算机考试时间,年全国计算机等级考试时间(范文).docx