用kettle做爬虫(一)get请求爬取日期

背景

接到一个任务,是爬取广东省采购网2019年全年的采购公告、合同信息、结果公告等信息。通过python代码的编写已经完成了这个任务。但由于采购网的服务器不是太稳定等因素,因此,相当一部分的数据行没有爬取到“公布日期”。

幸好,我的数据行里面已经存有每个数据的网址来历,只要直接get,就能获取该网页了。而我想起kettle里面也可以做简易的爬虫,因此,我利用kettle做了一个爬虫,将数据库内,公布日期为“0000-00-00”的错误数据,重新爬取入库。

附:广东省采购网网址:http://www.gdgpo.gov.cn/queryMoreInfoList.do

制作kettle转换

流程分别是:

1、读取url。

从库中读取结果公告表中PublishDate=‘0000-00-00‘的主键ID、url。

2、获取网页信息。

利用get请求获取页面信息。由于对方服务器不稳定,所以等待的时间要设置的比较长,而且给它设置了错误定义,将获取不到页面的url和id,暂且存到一个txt内,不影响整个流程跑。

3、文本处理和入库。

获取页面信息后(xml信息),本来我是打算用get data from xml来读取的,结果发现它的很多节点写的不规范,例如<link>少了</link>,<br>少了</br>,很多都没有结束符号。结果kettle就报错,我估计之前我用python爬,应该是这个语法的问题导致,我的beautifulsoup读不出来。无奈之下,我选择直接利用文本截取,更快更简洁。根据关键字“发布日期”去拆分文本。然后删掉拆分后产生的没用的字段。再利用剪切将日期的10位字符串剪出来。同理,删除新产生的不需要的字段。然后将更新记录写入数据库,和一个txt中作为记录。

处理结果

2800多条记录,跑了半个小时左右。对方的服务器确实比较慢。而且这种操作挺占内存的,每个页面的源代码都挺多,3000页左右就比较大了。

里面有17条记录是无法获取的url,可以人工去检查是什么问题。

关于xpath语言

还是想写一点记录一下。举个例子:

红色框这些是节点,绿色框的是属性(class="zw_c_c_title")。在填写kettle里面的循环路径时,只要填写节点就ok了。譬如我要读取这个绿色框的文本。循环路径就写:html/body/div/div/div,然后在字段路径里面,就根据你想获取的信息,在循环路径的哪一节去写,现在是在末端获取,所以字段路径就一点“.”,表示当前。而现在要获取的是属性,所以不用写一点了,就写@class就可以了。如果是要获取上一级,就是../@class。如此类推。

原文地址:https://www.cnblogs.com/10sxluo/p/12388322.html

时间: 2024-10-04 23:36:53

用kettle做爬虫(一)get请求爬取日期的相关文章

python网络爬虫第三弹(&lt;爬取get请求的页面数据&gt;)

一.urllib库 urllib是python自带的一个用于爬虫的库,其主要作用就是通过代码模拟浏览器发送请求,其常被用到的子模块在 python3中的为urllib.request 和 urllib.parse,在python2中的是 urllib 和 urllib2 二.由易到难首页面所有的数据值 1.爬取百度首页所有的数据值 import urllib.request import urllib.parse url = 'http://www.baidu.com' # 通过 URLopen

手把手教你做爬虫---基于NodeJs

前言: 趁着北京今儿天气格外的蓝,我觉得我得干点什么,于是乎,卷起袖子,整理一下最近做爬虫的那些事儿. 目标:爬取北京大学软件与微电子学院的所有新闻,并将内容及图片存储到本地. 设计思路:经过对北京大学软件与微电子学院的新闻网址http://www.ss.pku.edu.cn/index.php/newscenter/news/内容及网页格式的分析,我发现了这样一个规律:在每篇文章中,都会有下一篇文章url的链接.所以,我的做法是:给定一个初始(最新的)网页的url,如http://www.ss

爬虫介绍02:爬取第一个站点

为了搜刮某个站点,第一步我们需要下载该站包含有用信息的页面,也就是我么尝尝提到的爬取过程.爬站的方式多种多样,我们需要根据目标站点的结构选择合适的爬站方案.下面讨论如何安全的爬站,以及常用的三种方法: Crawling a sitemap Iterating the database IDs of each web page Following web page links 1. 下载一个Web页面 爬取网页前,首先需要下载他们.下面的Python脚本,使用了Python的 urllib2 模块

用Nodejs做爬虫

欢迎访文我的博客YangChen's Blog 引言 提起爬虫,最容易想到的就是python,因为python给人的感觉就是啥都能干,但是之前用python做爬虫的过程还是很不爽的,主要问题来自这么几个方面:第一个是对爬来的网页dom操作上,第二个就是编码的处理,第三就是多线程,所以用python做爬虫其实并不是很爽,有没有更爽的方式呢?当然有那就是node.js! Nodejs做爬虫的优劣 首先说一下node做爬虫的优势 第一个就是他的驱动语言是JavaScript.JavaScript在no

python爬虫Scrapy(一)-我爬了boss数据

一.概述 学习python有一段时间了,最近了解了下Python的入门爬虫框架Scrapy,参考了文章Python爬虫框架Scrapy入门.本篇文章属于初学经验记录,比较简单,适合刚学习爬虫的小伙伴.    这次我选择爬取的是boss直聘来数据,毕竟这个网站的数据还是很有参考价值的,下面我们讲述怎么爬取boss直聘的招聘信息并存盘,下一篇文章我们在对爬取到的数据进行分析. 二.Scrapy框架使用步骤 下面我们做一个简单示例,创建一个名字为BOSS的爬虫工程,然后创建一个名字为zhipin的爬虫

Python Scrapy的QQ音乐爬虫 音乐下载、爬取歌曲信息、歌词、精彩评论

QQ音乐爬虫(with scrapy)/QQ Music Spider 磁力搜索网站2020/01/07更新 https://www.cnblogs.com/cilisousuo/p/12099547.html UPDATE 2019.12.23 已实现对QQ音乐文件的下载,出于版权考虑,不对此部分代码进行公开.此项目仅作为学习交流使用,支持正版,人人有责 项目介绍 在写一个项目的时候需要用到一些音乐的信息,但是在网上找了许久也没找到满意的音乐语料,于是便用scrapy写了一个QQ音乐的爬虫 由

网络爬虫作业代码代写代实现、代做爬虫程序

网络爬虫作业代码代写代实现.代做爬虫程序任务二.网络爬虫实现 一.任务描述编写大学排名爬虫程序,从"最好大学网"获取"软科中国最好大学排名"2016.2017.2018年的国内大学排名数据,并将它们输出出来.2016年中国最好大学排名网址目的1.学习运用requests库编写基本URL访问过程2.学习运用beautifulsoup4库解析和处理HTML3.掌握编写网络爬虫的基本方法二.任务分析(必须有,主要分析任务需求,完成任务的思路与方法,采用的技术等,如爬虫的任

Python爬虫新手教程:爬取了6574篇文章,告诉你产品经理在看什么!

作为互联网界的两个对立的物种,产品汪与程序猿似乎就像一对天生的死对头:但是在产品开发链条上紧密合作的双方,只有通力合作,才能更好地推动项目发展.那么产品经理平日里面都在看那些文章呢?我们程序猿该如何投其所好呢?我爬取了人人都是产品经理栏目下的所有文章,看看产品经理都喜欢看什么. 1. 分析背景 1.1. 为什么选择「人人都是产品经理」 人人都是产品经理是以产品经理.运营为核心的学习.交流.分享平台,集媒体.培训.招聘.社群为一体,全方位服务产品人和运营人,成立8年举办在线讲座500+期,线下分享

# [爬虫Demo] pyquery+csv爬取猫眼电影top100

目录 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 代码君 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 https://maoyan.com/board/4?offset=0 翻页操作只会改变offset偏移量,每部电影的信息都在dd标签内,使用pyquery库中的css选择器直接解析页面 代码君 css选择器直接选择和使用find()方法的区别:find()用于选择子节点,因此限定了选择的区域,速度可能要快些,直接传入''选择器可能