Python学习之路——12306爬票遇到的两个问题
使用PyCharm+QT5在12306爬取余票信息的項目中遇到的問題,
問題1:This application failed to start because not Qt platform plugin could be initialized.? ?
問題2:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
問題1:使用PyCharm進入QT Designer繪制了窗體window.ui,后轉成window.py文件,經過代碼修改調試后run window,報錯This application failed to start because not Qt platform plugin could be initialized.? ?在網上查找了各路大佬的方法,復制plugins文件、修改系統環境變量等無果,最后檢查了一下是項目文件的路徑存在中文,改掉中文,啟動,就成功啦
問題2:請求車票信息時,運行到result = response.json()這一步報錯json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0),
url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={}&leftTicketDTO.from_station={}&leftTicketDTO.to_station={}&purpose_codes=ADULT".format(date, from_station, to_station) response = requests.get(url, headers=header) result = response.json()原因為request.get()是獨立的一次訪問,沒有攜帶前幾個訪問請求反饋后的狀態,相當于把每次請求看成了獨立瀏覽器去完成的,所以12306拒絕訪問。
解決方法為增加cookie直接寫入header,或者直接使用cookie。
修改后的代碼:
cookie = "_uab_collina=162446435281309305961668; JSESSIONID=28E53DE9D9C2EFA35710524A230FB4B8; BIGipServerotn=619708938.64545.0000; RAIL_EXPIRATION=1624775618686; RAIL_DEVICEID=rK1N26rkjeEQyLccR-mNLg3VxH0a9maG-KWLbrvx_NcoRN24nndiPGbLUq9_WCIgurdTMipo7-0glBTnodSVIfGlIJ1NNNfBlIyq8czcR_YQcnG8YWMfC01Z9Bd_Za9-SfnOgwRPc0Sa_CNWeUcUBk-qc65rPRZQ; BIGipServerpool_passport=65274378.50215.0000; route=6f50b51faa11b987e576cdb301e545c4; _jc_save_toStation=%u4E0A%u6D77%2CSHH; _jc_save_fromDate=2021-06-24; _jc_save_toDate=2021-06-24; _jc_save_wfdc_flag=dc; _jc_save_fromStation=%u5317%u4EAC%2CBJP" header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3870.400 QQBrowser/10.8.4405.400','Connection':'keep-alive','accept':'*/*','Cookie':cookie} url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={}&leftTicketDTO.from_station={}&leftTicketDTO.to_station={}&purpose_codes=ADULT".format(date, from_station, to_station) response = requests.get(url, headers=header) result = response.json()啟動,運行成功
總結
以上是生活随笔為你收集整理的Python学习之路——12306爬票遇到的两个问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机普通话水平测试有用吗,计算机辅助普
- 下一篇: 【Day 6 of Learning P