返回顶部
首页 > 资讯 > 后端开发 > Python >python scrapy爬取HBS 汉
  • 371
分享到

python scrapy爬取HBS 汉

pythonscrapyHBS 2023-01-30 23:01:55 371人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

下面分享个scrapy的例子 利用scrapy爬取HBS 船公司柜号信息 1、前期准备 查询提单号下的柜号有哪些,主要是在下面的网站上,输入提单号,然后点击查询 https://www.hamburgsud-line.com/liner/

下面分享个scrapy的例子

利用scrapy爬取HBS 船公司柜号信息

1、前期准备

查询提单号下的柜号有哪些,主要是在下面的网站上,输入提单号,然后点击查询

https://www.hamburgsud-line.com/liner/en/liner_services/ecommerce/track_trace/index.html

 通过浏览器的network,我们可以看到,请求的是如下的网址

 请求的参数如下,可以看到其中一些参数是固定的,一些是变化的(下图红框中的数据),而这些变化的参数大部分是在页面上,我们可以先请求一下这个页面,获取其中提交的参数,然后再提交

2编写爬虫

 2.1首先,我们请求一下这个页面,然后获取其中的一些变化的参数,把获取到的参数组合起来

# -*- coding: utf-8 -*-
import scrapy
from scrapy.Http import Request, FORMRequest

class HbsSpider(scrapy.Spider):
name = "hbs"
allowed_domains = ["www.hamburgsud-line.com"]
def start_requests(self):
        yield Request(self.post_url, callback=self.post)
def post(self, response):
        sel = response.CSS('input')
        keys = sel.xpath('./@name').extract()
        values = sel.xpath('./@value').extract()
        inputData = dict(zip(keys, values))

2.2 再次请求数据

1、把固定不变的参数和页面获取到的参数一起提交

2、再把header伪装一下

    post_url = 'https://www.hamburgsud-line.com/linerportal/pages/hsdg/tnt.xhtml'
def post(self, response):
        sel = response.css('input')
        keys = sel.xpath('./@name').extract()
        values = sel.xpath('./@value').extract()
        inputData = dict(zip(keys, values))
        # 提交页面的解析函数,构造FormRequest对象提交表单

       
        fd = {'javax.faces.partial.ajax': 'true',
                  'javax.faces.source': 'j_idt6:searchForm:j_idt8:search-submit',
                  'javax.faces.partial.execute': 'j_idt6:searchForm',
                  'javax.faces.partial.render': 'j_idt6:searchForm',
                  'j_idt6:searchForm:j_idt8:search-submit': 'j_idt6:searchForm:j_idt8:search-submit',
                  # 'j_idt6:searchForm': 'j_idt6:searchForm',
                  'j_idt6:searchForm:j_idt8:inputReferences': self.blNo,
                  # 'j_idt6:searchForm:j_idt8:inputDateFrom_input': '04-Jan-2019',
                  # 'j_idt6:searchForm:j_idt8:inputDateTo_input': '16-Mar-2019',
                  # 'javax.faces.ViewState': '-2735644008488912659:3520516384583764336'
                  }       

        fd.update(inputData)

        headers = {
            ':authority': 'www.hamburgsud-line.com',
            ':method': 'POST',
            ':path': '/linerportal/pages/hsdg/tnt.xhtml',
            ':scheme':'https',
            # 'accept': 'application/xml,text/xml,**;q=0.01',
            # 'accept-language':'zh-CN,zh;q=0.8',
            'content-type':'application/x-www-form-urlencoded; charset=UTF-8',
            'faces-request': 'partial/ajax',
            'origin':'https://www.hamburgsud-line.com',
            'referer':'https://www.hamburgsud-line.com/linerportal/pages/hsdg/tnt.xhtml',
            'user-agent':'Mozilla/5.0 (windows NT 6.1; WOW64) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
            'x-requested-with':'XMLHttpRequest'
        }

        yield FormRequest.from_response(response, formdata=fd,callback=self.parse_post,headers=headers)

    def parse_post(self, response):
        # 提交成功后,继续爬取start_urls 中的页面
        text = response.text;
        xml_data = minidom.parseString(text).getElementsByTagName('update')
        if len(xml_data) > 0:
            # form = xml_data[0].textContent
            form = xml_data[0].firstChild.wholeText

            selector = Selector(text=form)
            trs = selector.css("table[role=grid] tbody tr")
            for i in range(len(trs)):
                print(trs[i])
                td = trs[i].css("td:nth-child(2)>a::text")
                yield  {
                    'containerNo' : td.extract()
                }

 

--结束END--

本文标题: python scrapy爬取HBS 汉

本文链接: https://lsjlt.com/news/181322.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python scrapy爬取HBS 汉
    下面分享个scrapy的例子 利用scrapy爬取HBS 船公司柜号信息 1、前期准备 查询提单号下的柜号有哪些,主要是在下面的网站上,输入提单号,然后点击查询 https://www.hamburgsud-line.com/liner/...
    99+
    2023-01-30
    python scrapy HBS
  • Python scrapy框架爬取瓜子二
    项目实施依赖: python,scrapy ,fiddler scrapy安装依赖的包: 可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/  下载 pywin32,lxml,Twisted,sc...
    99+
    2023-01-31
    瓜子 框架 Python
  • Python 爬虫—scrapy
    scrapy用于从网站中提取所需数据的开源协作框架。以一种快速、简单但可扩展的方式。 该爬虫框架适合于那种静态页面, js 加载的话,如果你无法模拟它的 API 请求,可能就需要使用 seleni...
    99+
    2023-09-06
    python 爬虫 scrapy
  • 使用scrapy爬取suning
    # -*- coding: utf-8 -*- import scrapy from copy import deepcopy class SuSpider(scrapy.Spider): name = 'su' ...
    99+
    2023-01-31
    scrapy suning
  • Python爬虫之教你利用Scrapy爬取图片
    目录Scrapy下载图片项目介绍使用Scrapy下载图片项目创建项目预览创建爬虫文件项目组件介绍Scrapy爬虫流程介绍页面结构分析最终目录树项目运行爬取结果后记Scrapy下载图片...
    99+
    2024-04-02
  • python实现Scrapy爬取网易新闻
    1. 新建项目 在命令行窗口下输入scrapy startproject scrapytest, 如下 然后就自动创建了相应的文件,如下 2. 修改itmes.py文件 打开s...
    99+
    2024-04-02
  • 基于python的scrapy框架爬取豆
    1.Scrapy框架介绍 主要介绍,spiders,engine,scheduler,downloader,Item pipeline scrapy常见命令如下:   对应在scrapy文件中有,自己增加爬虫文件,系统生成items,...
    99+
    2023-01-30
    框架 python scrapy
  • Python的scrapy之爬取6毛小说
    闲来无事想看个小说,打算下载到电脑上看,找了半天,没找到可以下载的网站,于是就想自己爬取一下小说内容并保存到本地 圣墟 第一章 沙漠中的彼岸花 - 辰东 - 6毛小说网  http://www.6mao.com/html/40/40184...
    99+
    2023-01-30
    小说 Python scrapy
  • Python爬虫实战之使用Scrapy爬取豆瓣图片
    使用Scrapy爬取豆瓣某影星的所有个人图片 以莫妮卡·贝鲁奇为例 首先我们在命令行进入到我们要创建的目录,输入 scrapy startproject banciyuan 创建scrapy项目 创建的项目结构如下...
    99+
    2022-06-02
    Scrapy爬取图片 Python Scrapy
  • python实战之Scrapy框架爬虫爬取微博热搜
    前言:大概一年前写的,前段时间跑了下,发现还能用,就分享出来了供大家学习,代码的很多细节不太记得了,也尽力做了优化。 因为毕竟是微博,反爬技术手段还是很周全的,怎么绕过反爬的话要在这...
    99+
    2024-04-02
  • Python抓取框架Scrapy爬虫入门:页面提取
    前言 Scrapy是一个非常好的抓取框架,它不仅提供了一些开箱可用的基础组建,还能够根据自己的需求,进行强大的自定义。本文主要给大家介绍了关于Python抓取框架Scrapy之页面提取的相关内容,分享出来供...
    99+
    2022-06-04
    爬虫 框架 入门
  • python如何使用Scrapy爬取网易新闻
    这篇文章主要介绍python如何使用Scrapy爬取网易新闻,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 新建项目在命令行窗口下输入scrapy startproject scrapytest, 如下然后就自动...
    99+
    2023-06-14
  • Python scrapy爬取起点中文网小说榜单
    一、项目需求 爬取排行榜小说的作者,书名,分类以及完结或连载 二、项目分析 目标url:“https://www.qidian.com/rank/hotsales?style=1&page=1” 通...
    99+
    2022-06-02
    Python scrapy爬取小说榜单 python爬虫
  • Python scrapy爬取苏州二手房交易数据
    一、项目需求 使用Scrapy爬取链家网中苏州市二手房交易数据并保存于CSV文件中 要求: 房屋面积、总价和单价只需要具体的数字,不需要单位名称。 删除字段不全的房屋数据,如有的房屋朝向会显示“暂无数据”,应该剔除。...
    99+
    2022-06-02
    scrapy爬取二手房交易数据 python scrapy框架
  • 使用 Scrapy 爬取股票代码
    个人博客: https://mypython.me 源码地址: https://github.com/geeeeeeeek/scrapy_stock 抓取工具:scrapy scrapy 介绍 Scrapy是一个为了爬取网站数据,提取结构...
    99+
    2023-01-30
    股票代码 Scrapy
  • 如何用Scrapy爬取豆瓣TOP250
    如何用Scrapy爬取豆瓣TOP250,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使...
    99+
    2023-06-04
  • python爬虫项目(scrapy-re
      爬取目标:房天下全国租房信息网站(起始url:http://zu.fang.com/cities.aspx)   爬取内容:城市;名字;出租方式;价格;户型;面积;地址;交通   反反爬措施:设置随机user-agent、设置请求延...
    99+
    2023-01-30
    爬虫 项目 python
  • python爬虫框架scrapy实战之爬取京东商城进阶篇
    前言 之前的一篇文章已经讲过怎样获取链接,怎样获得参数了,详情请看python爬取京东商城普通篇,本文将详细介绍利用python爬虫框架scrapy如何爬取京东商城,下面话不多说了,来看看详细的介绍吧。 ...
    99+
    2022-06-04
    爬虫 实战 框架
  • Python爬虫教程使用Scrapy框架爬取小说代码示例
    目录Scrapy框架简单介绍创建Scrapy项目创建Spider爬虫Spider爬虫提取数据items.py代码定义字段fiction.py代码提取数据pipelines.py代码保...
    99+
    2024-04-02
  • 使用python scrapy爬取天气并导出csv文件
    目录爬取xxx天气安装创建scray爬虫项目文件说明开始爬虫补充:scrapy导出csv时字段的一些问题1.字段顺序问题:2.输出csv有空行的问题总结 爬取xxx天气 爬...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作