1.1 爬下12306--爬取信息

本文详细介绍了如何使用curl命令在Linux环境下爬取12306火车票信息,包括忽略证书校验、设置user-agent以及获取查询URL的方法。通过浏览器的开发者工具解析网络请求,获取所需参数,解析出站点名称与代号。
摘要由CSDN通过智能技术生成

1.1爬取信息

#!/bin/bash
curl --insecure --user-agent "Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0" "https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=$1&from_station=SHH&to_station=BJP" | grep -oP "(?<={)[^{}]+(?=})" | sed -r 's/.*station_train_code":"([^"]+).*start_station_name":"([^"]+).*end_station_name":"([^"]+).*start_time":"([^"]+).*arrive_time":"([^"]+).*ze_num":"([^"]+).*zy_num":"([^"]+).*swz_num":"([^"]+).*/\1 \2 \3 \4 \5 \6 \7 \8/'

对于上图的fetch_sh-bj.sh脚本程序,也许现在你还看得一头雾水。
但请不要着急,熬过了黑夜就可以见到黎明的曙光。
先喝一口24K纯度的凉白开压压惊,下面听我为你娓娓道来关于fetch_sh-bj.sh前世今生。
前文提到fetch_sh-bj.sh一共可以分为三部分。
本小节我们先聊聊和爬取信息相关的那一部分—curl
curl命令可以分为三段:

第一段: --insecure 选项

insecure选项用于告知curl不对网站的证书做校验。
我相信很多童鞋在第一次使用12306网站定票时,都有过类似的体验,打开订票页面时,浏览器爆出个“当前网页不受信任,是否继续”之类的警告信息。
FireFox当前网页不受信任警告

curl在爬取订票信息时,干着和浏览器类似的事。
如果不指明insecure选项,则会显示当前网页认证失败。

cyf@cyf$curl --user-agent "Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0" "https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-05-14&from_station=SHH&to_station=BJP"
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate v
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值