Python 从TrainLine.com上删除机票和票价数据

Python 从TrainLine.com上删除机票和票价数据,python,python-3.x,web-scraping,beautifulsoup,python-requests,Python,Python 3.x,Web Scraping,Beautifulsoup,Python Requests,各位程序员好。我正试图运行一个python代码来从trainline.com上获取信息。 我最近开始编程,似乎不知道如何从post请求中提取数据。请参阅下面的信息 以下是我目前的代码: postURL = 'https://www.thetrainline.com/buytickets/' predata = {'OriginStation':'Stockport', 'DestinationStation':'Birmingham New Street', 'RouteRestriction'

各位程序员好。我正试图运行一个python代码来从trainline.com上获取信息。 我最近开始编程,似乎不知道如何从post请求中提取数据。请参阅下面的信息

以下是我目前的代码:

postURL = 'https://www.thetrainline.com/buytickets/'
predata = {'OriginStation':'Stockport',
'DestinationStation':'Birmingham New Street',
'RouteRestriction':'NULL',
'ViaAvoidStation':'',
'journeyTypeGroup':'return',
'outwardDate':'14-Apr-17',
'OutwardLeaveAfterOrBefore':'A',
'OutwardHour':'15',
'OutwardMinute':'15',
'returnDate':'16-Apr-17',
'InwardLeaveAfterOrBefore':'A',
'ReturnHour':'9',
'ReturnMinute':'0',
'AdultsTravelling':'1',
'ChildrenTravelling':'0',
'railCardsType_0':'YNG',
'railCardNumber_0':'1',
'ExtendedSearch':'Get times & tickets'}

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
import requests
postform=requests.post(postURL,headers=headers, data=predata)

from bs4 import BeautifulSoup
soup=BeautifulSoup(postform.content,'html.parser')
table=soup.find(id='timetable')
如果在Shell中运行命令“table”,则会得到以下结果:

>>> table
<form action="combinedmatrix.aspx" class="form matrix matrix-search-outdep matrix-search-returndep" data-defaults='{"adultPassengers":1,"canChangeJourney":true,"canPreselectTicket":true,"childPassengers":0,"destinationName":"Birmingham New Street","fullJourneys":[{"cheapestTickets":[{"label":"Cheapest Standard Single","tickets":[{"code":"MBS","departureTime":"15:16","groupIdentifier":"cheapest","isCheapest":true,"journeyId":1,"price":"9.30","value":"{\"ArrivalStationCode\":\"BHM\",\"DepartureStationCode\":\"SPT\",\"Id\":208,\"JourneyArrivalDate\":\"\\\/Date(1492183980000+0100)\\\/\",\"JourneyDepartureDate\":\"\\\/Date(1492179360000+0100)\\\/\",\"Price\":9.3,\"PriceInPounds\":\"£9.30\",\"Type\":2}"},{"code":"MBS","departureTime":"15:36","groupIdentifier":"cheapest","isCheapest":true,"journeyId":2,"price":"9.30","value":"{\"ArrivalStationCode\":\"BHM\",\"DepartureStationCode\":\"SPT\",\"Id\":208,\"JourneyArrivalDate\":\"\\\/Date(1492185480000+0100)\\\/\",\"JourneyDepartureDate\":\"\\\/Date(1492180560000+0100)\\\/\",\"Price\":9.3,\"PriceInPounds\":\"£9.30\",\"Type\":2}"},{"code":"SVS","departureTime":"15:40","groupIdentifier":"cheapest","journeyId":3,"price":"23.85","value":"{\"ArrivalStationCode\":\"BHM\",\"DepartureStationCode\":\"SPT\",\"Id\":253,\"JourneyArrivalDate\":\"\\\/Date(1492186680000+0100)\\\/\",\"JourneyDepartureDate\":\"\\\/Date(1492180800000+0100)\\\/\",\"Price\":23.85,\"PriceInPounds\":\"£23.85\",\"Type\":2}"},{"code":"MBS","departureTime":"16:16","groupIdentifier":"cheapest","isCheapest":true,"journeyId":4,"price":"9.30","value":"{\"ArrivalStationCode\":\"BHM\",\"DepartureStationCode\":\"SPT\",\"Id\":208,\"JourneyArrivalDate\":\"\\\/Date(1492187580000+0100)\\\/\",\"JourneyDepartureDate\":\"\\\/Date(1492182960000+0100)\\\/\",\"Price\":9.3,\"PriceInPounds\":\"£9.30\",\"Type\":2}"}],"ticketsType":"S"},{"label":"Cheapest First Class Single","tickets":[{"code":"MBF","departureTime":"15:16","groupIdentifier":"cheapest","journeyId":1,"price":"24.30","value":"{\"ArrivalStationCode\":\"BHM\",\"DepartureStationCode\":\"SPT\",\"Id\":210,\"JourneyArrivalDate\":\"\\\/Date(1492183980000+0100)\\\/\",\"JourneyDepartureDate\":\"\\\/Date(1492179360000+0100)\\\/\",\"Price\":24.3,\"PriceInPounds\":\"£24.30\",\"Type\":2}"},{"code":"MBF","departureTime":"15:36","groupIdentifier":"cheapest","journeyId":2,"price":"24.30","value":"{\"ArrivalStationCode\":\"BHM\",\"DepartureStationCode\":\"SPT\",\"Id\":210,\"JourneyArrivalDate\":\"\\\/Date(1492185480000+0100)\\\/\",\"JourneyDepartureDate\":\"\\\/Date(1492180560000+0100)\\\/\",\"Price\":24.3,\"PriceInPounds\":\"£24.30\",\"Type\":2}"},
...
>表格

您想要的数据不是在
数据默认值
属性中吗?你可以解析这个json。你真正需要什么数据?我把你的JSON格式设置得稍微好一点,这样你就可以更好地理解如何访问itI了。我需要数据默认值,以便能够只删除门票和价格。你想要的数据不是在
数据默认值
属性中吗?你可以解析这个json。你真正需要什么数据?我把你的JSON格式设置得稍微好一点,这样你就可以更好地理解如何访问itI了。我需要数据默认值,以便能够只删除门票和价格。虽然这段代码可以回答这个问题,提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。非常感谢。成功了。我得到消息了。。现在更多地研究它,虽然这段代码可能会回答这个问题,但提供关于它如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。非常感谢。成功了。我得到消息了。。现在,我们正在做更多的工作
In [8]: import json

In [9]: json.loads(table.get('data-defaults'))