用python写爬虫-2.2requests库之post

2018-04-03  本文已影响0人  ddm2014

前面‘什么值得买’是get方法,现在来看看另一种叫post,post前面说了是封信,信封的地址像什么值得买https://faxian.smzdm.com/这个网址,信封里装的是要查询的信息。
还是举个例子。12306的火车票信息。
打开12306官网,点击购票,出现的网址就是https://kyfw.12306.cn/otn/index/init
打开F12,看到此网页是get

image.png
然后填好出发地,目的地,出发日期,就能够查询到相关的火车票信息。
这时再看F12,就发现已然是post方法了
image.png
post最关键的是你要提交跟浏览器一样的数据信息,这个信息在哪里呢?还是F12
在Headers这栏最下面有一项,form data,这就是信封里的内容了。
import requests

data = {
    'leftTicketDTO.from_station_name':'西宁',
    'leftTicketDTO.to_station_name':'格尔木',
    'leftTicketDTO.from_station':'XNO',
    'leftTicketDTO.to_station':'GRO',
    'leftTicketDTO.train_date':'2018-04-04',
    'back_train_date':'2018-04-03',
    'flag':'dc',
    'purpose_code':'ADULT',
    'pre_step_flag':'index'}
re =requests.post('https://kyfw.12306.cn/otn/leftTicket/init',data=data)
print(re.text)

ctrl+f,看看页面显示的看了看列车信息在不在re.text


image.png

很不幸,不在呢,这是因为网站用的js,返回的json,怎么知道的呢?
还是前面说的,一般不在document就在xhr里,现在看看xhr唯一的连接,看看返回值有没有列车信息呢?


image.png
json的处理还得再等一等再说。
不过这件事情教育我,爬虫之前一定要先找到信息的来源,这才是最重要的,连本都没找到,怎么爬取下来?
上一篇下一篇

猜你喜欢

热点阅读