筆者是wordpress的忠實用戶,之前也做過針對google和yahoo的seo,這些國外主流搜索引擎對wordpress貌似都相當友好。但是筆者做秀萌網(wǎng)博客的時候發(fā)現(xiàn)了問題:百度為什么無論如何都不會收錄我在wordpress里發(fā)表的文章呢?難道是因為外鏈發(fā)的不夠多?如果不收錄我的文章,那何談轉(zhuǎn)載。在筆者經(jīng)過網(wǎng)上查閱資料,分析得出經(jīng)驗和結(jié)論,總結(jié)了本篇文章。百度不收錄wordpress頁面的原因百度不收錄wordpress的頁面其實并不是絕對的,國內(nèi)有很多做的相當不錯的wordpress站,比如筆者很喜歡的谷奧。這些站本身和其他wordpress到底有什么樣的區(qū)別?仔細觀察過一些被收錄很好的網(wǎng)站,發(fā)現(xiàn)它們本身的標簽云并沒有被很好的收錄,文章歸檔頁也大多沒有收錄。再去看這些站點的sitemap,其實并沒有什么特別之處。起初筆者也是越來越迷茫,到底是什么原因?qū)е铝怂鼈兛梢员豁樌珍洠拷?jīng)過多番試驗,答案終于水出石面。總結(jié)下來有以下幾條原因:經(jīng)常改變主題wordpress豐富的主題會讓不少站長挑花了眼,但是兩三天一換主題卻是一個致命傷。不同主題大多文檔結(jié)構(gòu)是不一樣的,如果經(jīng)常改變主題,也就相當于網(wǎng)站經(jīng)常改版。這樣一定會影響收錄情況的,最壞可能會被k站。所以使用wordpress做blog的站長一定要注意,切忌勤換主題。解決方法也很簡單,選擇主題一定一步到位,之后修改主題只需要二次開發(fā)就好了,沒必要大動干戈的時候就盡量少修改。復(fù)雜的標簽云也許有人會問,標簽云不是有利于搜索引擎的嗎?的確,好的標簽云是增加網(wǎng)站內(nèi)部鏈接的很好的選擇。但是過度使用標簽會造成不好的影響。尤其wordpress的標簽功能十分強大,同時也十分復(fù)雜,這就給搜索引擎爬取頁面帶來了難度:爬蟲無法權(quán)衡標簽的權(quán)重。其實標簽并不是分類,如果把標簽當作文檔歸類去使用,那注定你網(wǎng)站的結(jié)構(gòu)不會太好。通常情況,一篇文章打1到3個標簽是正常的,如果標簽太多,反而會讓爬蟲繞暈,不利于收錄。如果掌握不好度,可以將“標簽云”的小插件刪除掉。過慢的反應(yīng)速度和動態(tài)頁面過慢的反應(yīng)速度通常也是網(wǎng)站的硬傷。如果開啟了緩存還好,沒有開啟緩存功能的wordpress站可能需要很高的主機配置。開啟很多插件的wordpress同時會對相應(yīng)速度產(chǎn)生影響。最好的方法,當然是靜態(tài)化url。

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)提供從項目策劃、軟件開發(fā),軟件安全維護、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務(wù),主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè),重慶APP開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。成都創(chuàng)新互聯(lián)公司深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
一、403 forbidden是什么意思?
403 Forbidden是HTTP協(xié)議中的一個狀態(tài)碼(Status Code)。可以簡單的理解為沒有權(quán)限訪問此站。該狀態(tài)表示服務(wù)器理解了本次請求但是拒絕執(zhí)行該任務(wù),該請求不該重發(fā)給服務(wù)器。在HTTP請求的方法不是“HEAD”,并且服務(wù)器想讓客戶端知道為什么沒有權(quán)限的情況下,服務(wù)器應(yīng)該在返回的信息中描述拒絕的理由。在服務(wù)器不想提供任何反饋信息的情況下,服務(wù)器可以用404 Not Found代替403 Forbidden。
二、403錯誤代碼的分類介紹
403.1
403.1錯誤是由于"執(zhí)行"訪問被禁止而造成的,若試圖從目錄中執(zhí)行CGI、ISAPI或其他可執(zhí)行程序,但該目錄不允許執(zhí)行程序時便會出現(xiàn)此種錯誤。
403.2
403.2錯誤是由于"讀取"訪問被禁止而造成的。導(dǎo)致此錯誤是由于沒有可用的默認網(wǎng)頁并且沒有對目錄啟用目錄瀏覽,或者要顯示的HTML網(wǎng)頁所駐留的目錄僅標記為"可執(zhí)行"或"腳本"權(quán)限。
403.3
403.3錯誤是由于"寫入"訪問被禁止而造成的,當試圖將文件上載到目錄或在目錄中修改文件,但該目錄不允許"寫"訪問時就會出現(xiàn)此種錯誤。
403.4
403.4錯誤是由于要求SSL而造成的,您必須在要查看的網(wǎng)頁的地址中使用"https"。
403.5
403.5錯誤是由于要求使用128位加密算法的Web瀏覽器而造成的,如果您的瀏覽器不支持128位加密算法就會出現(xiàn)這個錯誤,您可以連接微軟網(wǎng)站進行瀏覽器升級。
403.6
403.6錯誤是由于IP地址被拒絕而造成的。如果服務(wù)器中有不能訪問該站點的IP地址列表,并且您使用的IP地址在該列表中時您就會返回這條錯誤信息。
403.7
403.7錯誤是因為要求客戶證書,當需要訪問的資源要求瀏覽器擁有服務(wù)器能夠識別的安全套接字層(SSL) 客戶證書時會返回此種錯誤。
403.8
403.8錯誤是由于禁止站點訪問而造成的,若服務(wù)器中有不能訪問該站點的DNS名稱列表,而您使用的DNS名稱在列表中時就會返回此種信息。請注意區(qū)別403.6與403.8錯誤。
403.9
403.9錯誤是由于連接的用戶過多而造成的,由于Web服務(wù)器很忙,因通訊量過多而無法處理請求時便會返回這條錯誤。
403.10
403.10錯誤是由于無效配置而導(dǎo)致的錯誤,當您試圖從目錄中執(zhí)行CGI、ISAPI或其他可執(zhí)行程序,但該目錄不允許執(zhí)行程序時便會返回這條錯誤。
403.11
403.11錯誤是由于密碼更改而導(dǎo)致無權(quán)查看頁面。
403.12
403.12錯誤是由于映射器拒絕訪問而造成的。若要查看的網(wǎng)頁要求使用有效的客戶證書,而您的客戶證書映射沒有權(quán)限訪問該Web站點時就會返回映射器拒絕訪問的錯誤。
403.13
403.13錯誤是由于需要查看的網(wǎng)頁要求使用有效的客戶證書而使用的客戶證書已經(jīng)被吊銷,或者無法確定證書是否已吊銷造成的。
403.14
403.14錯誤Web 服務(wù)器被配置為不列出此目錄的內(nèi)容,拒絕目錄列表。
403.15
403.15錯誤是由于客戶訪問許可過多而造成的,當服務(wù)器超出其客戶訪問許可限制時會返回此條錯誤。
403.16
403.16錯誤是由于客戶證書不可信或者無效而造成的。
403.17
403.17錯誤是由于客戶證書已經(jīng)到期或者尚未生效而造成的。
三、導(dǎo)致403錯誤的主要原因
1、你的IP被列入黑名單。
2、你在一定時間內(nèi)過多地訪問此網(wǎng)站(一般是用采集程序),被防火墻拒絕訪問了。
3、網(wǎng)站域名解析到了空間,但空間未綁定此域名。
4、你的網(wǎng)頁腳本文件在當前目錄下沒有執(zhí)行權(quán)限。
5、在不允許寫/創(chuàng)建文件的目錄中執(zhí)行了創(chuàng)建/寫文件操作。
6、以http方式訪問需要ssl連接的網(wǎng)址。
7、瀏覽器不支持SSL 128時訪問SSL 128的連接。
8、在身份驗證的過程中輸入了錯誤的密碼。
9、DNS解析錯誤,手動更改DNS服務(wù)器地址。
10、連接的用戶過多,可以過后再試。
11、服務(wù)器繁忙,同一IP地址發(fā)送請求過多,遭到服務(wù)器智能屏蔽。
四、解決403 forbidden錯誤的方法
1、重建dns緩存
對于一些常規(guī)的403 forbidden錯誤,馬海祥建議大家首先要嘗試的就是重建dns緩存,在運行中輸入cmd,然后輸入ipconfig /flushdns即可。如果不行的話,就需要在hosts文件里把主頁解析一下了。
2、修改文件夾安全屬性
用以下命令修改文件夾安全屬性
chcon -R -t httpd_user_content_t public_html/
所用命令解析:
ls -Z -d public_html/
#顯示文件/目錄的安全語境-Z, --context
Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.-d, --directory
list directory entries instead of contents, and do not dereference symbolic links
chcon -R -t httpd_user_content_t public_html/
#修改文件/目錄的安全語境-R, --recursive
change files and directories recursively-t, --type
set type TYPE in the target security context
3、關(guān)于apache導(dǎo)致的403 forbidden錯誤的解決辦法
打開apache的配置文件httpd.conf,找到這段代碼:
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
有時候由于配置了php后,這里的“Deny from all”已經(jīng)拒絕了一切連接。把該行改成“allow from all”,修改后的代碼如下,問題解決。
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
之所以會出現(xiàn)錯誤,是因為大多數(shù)的國外主機在配置Apache的時候啟用了mod_security,也就是開啟了安全檢查,如果提交的信息中包含select , % , bin等關(guān)鍵字,Apache就會禁止,并給出403,404,500等錯誤。
4、關(guān)于HawkHost空間出現(xiàn)403 Forbidden錯誤的解決方法
有的時候在共享服務(wù)器上安裝了Mod security,當網(wǎng)址包含有“%”號等其它敏感字符時,就會被Mod security阻止,馬海祥博客曾經(jīng)也出現(xiàn)過此情況。
解決HawkHost 403 Forbidden 錯誤的方法:
在.htaccess文件里添加如下代碼:
SecFilterEngine Off
SecFilterScanPOST Off
直接放在網(wǎng)站的根目錄或者程序運行的目錄下。
5、關(guān)于WordPress導(dǎo)致的403 Forbidden錯誤解決方法
對于一些使用WordPress管理程序搭建的博客來說,就需要修改.htaccess文件,在后面添加上如下內(nèi)容即可,其實就是disable mod_security
SecFilterEngine Off
SecFilterScanPOST Off
另外dedecms的可能還需要再加一條,以讓默認訪問的是index.html文件的DirectoryIndex index.html。
修改.htaccess文件,將文件上傳之后,再重新打開之前出現(xiàn)403 Forbidden的URL就沒有再出現(xiàn)錯誤,直接可以打開了。
1、在做SEO的時候首先通過Google網(wǎng)站管理員工具提交Sitemap,它可以使網(wǎng)站內(nèi)容完全被收錄,當然包括那些隱藏比較深的頁面。
2、優(yōu)化 title 頁標題,不要把 Blog 名稱顯示在文章標題的前面,因為在搜索結(jié)果中,頁標題會高亮顯示,把 Blog 名稱放在前面,會導(dǎo)致因為長度過長而被隱藏,同時不利于訪問者在第一時間關(guān)注到文章本身的標題。
3、從SEO的角度來講robots.txt文件是一定要設(shè)置的,這是因為:采用robots.txt文件可以屏蔽掉次要的、URL重寫優(yōu)化前的鏈接,以及屏蔽一些沒有關(guān)鍵詞的頁面。robots.txt 文件必須放在網(wǎng)站的根目錄,能通過 /robots.txt 可以成功訪問到,則說明本站的放置正確。如 robots.txt 文件放在子目錄,那么搜索引擎不能爬取到,也就不會起任何作用。
4、需要大量的反向鏈接,因為大量的鏈接指向Blog 可以提高 PageRank,并且能讓 Blog 在搜索引結(jié)果中更靠前。
5、搜索引擎非常喜歡原創(chuàng)文章。如果在搜索結(jié)果中,文章排在第三頁后,那么也不會給 Blog 帶來多少實質(zhì)的影響了。文章內(nèi)容必須簡潔有力,不要長篇大論。
6、垃圾留言會影響 Blog 在搜索引擎中的表現(xiàn)。需要安裝一個自動過濾垃圾留言評論的的插件,推薦使用 Akismet。
7、堅持每天更新。
1
為什么會實行搶票機制?
?
其他所謂的搶票,根本原理就是幫你時時刻刻盯著12306而已。無論哪一家的搶票,最終都是要通過.
2
有人知道搶票軟件的原理是什么嗎?
“購票者提供個人信息,將被上傳至服務(wù)器數(shù)據(jù)庫。 一旦檢測到余票就迅速鎖定,并通過高速填寫乘車人信息和自動識別驗證碼來搶票
3
12306是搶票原理分析 - 多線程之間實現(xiàn)同步 - evanYang - 的博客...
2020年5月3日程序執(zhí)行的順序按照代碼的先后順序執(zhí)行。 一般來說處理器為了提高程序運行效率
4
python自動搶票的原理
python自動搶票的原理_利用Python代碼自動搶火車票的原理以及代碼解析
weixin_39890629
原創(chuàng)
關(guān)注
1點贊·1024人閱讀
今年你不妨自己寫一段代碼來搶回家的火車票,是不是很Cool。
準備工具:
12306網(wǎng)站用戶名和密碼
chrome瀏覽器及下載chromedriver
下載Python代碼
代碼用的Python+Splinter開發(fā),Splinter是一個使用Python開發(fā)的開源Web應(yīng)用測試工具,它可以幫你實現(xiàn)自動瀏覽站點和與其進行交互。Splinter執(zhí)行的時候會自動打開你指定的瀏覽器,訪問指定的URL。然后你所開發(fā)的模擬的任何行為,都會自動完成,你只需要坐在電腦面前,像看電影一樣看著屏幕上各種動作自動完成然后收集結(jié)果即可。
了解原理:
找到相應(yīng)URL,找到控件模擬登錄、查詢、訂票操作。關(guān)鍵是找到控件名稱,難點是起始地不是直接輸入的頁面值,需要在cookie中查出。
12306查詢URL:
12306登錄URL:
我的12306URL:
購票確認URL:
Python代碼打開URL,找到控件填充值:
找到用戶名密碼控件名
找到起始地控件名
確定起始地的值,方法Chrome瀏覽器中的“檢查”功能(按F12),Network---Cookies中找到:
cookie中起始地的值
拷貝起始地的cookie值,我把幾個常用的城市拷出來,放到了字典中:
查詢車票代碼:
其實,你只需要運行代碼:
當然,還需要手動點一下的還是萬惡的12306驗證碼,搶到票后確認支付就行啦。
搶票進行中
搶票成功!
5
登錄
首頁
學(xué)習(xí)
實踐
活動
專區(qū)
工具
TVP
返回騰訊云官網(wǎng)
阿黎逸陽
111 篇文章
關(guān)注
100行代碼自動買火車票——和你一起探索搶票軟件背后的原理
2021-10-08 15:32:42閱讀 6940
大家有沒有這種感覺,一到國慶、春節(jié)這種長假,搶火車票就非常困難?
各大互聯(lián)網(wǎng)公司都推出搶票服務(wù),只要加錢給服務(wù)費就可以增加搶到票的幾率。
有些火車票代售網(wǎng)點和一些加速買票軟件,說你只要給100元服務(wù)費就可以優(yōu)先幫忙搶到票。
本文和你一起探索搶票軟件背后的原理。
本文目錄
效果展示
代碼詳解
2.1 導(dǎo)入庫
2.2 確定好基本購票信息
2.3 登錄12306
2.4 模擬滑動滑塊
2.5 處理疫情特殊要求
2.6 點擊購票并填寫相關(guān)信息
2.7 鎖定車票
一、效果展示
在正式進入代碼講解之前,先來看下本文的實現(xiàn)效果。
如果不是為了演示效果,直接在最后確定階段加一個延時點擊確定,應(yīng)該不到45秒可以鎖定一張票,只要在30分鐘之內(nèi)付款即可。
二、代碼詳解
本小節(jié)會詳細解鎖搶票軟件是如何模擬登錄網(wǎng)站,進行自動買票的。
為了更清晰地給大家展示,部分代碼沒有寫成函數(shù),直接裸代碼運行,讓需要買票的朋友可以自己應(yīng)用軟件進行購票。
1 導(dǎo)入庫
首先導(dǎo)入本文需要加載的庫,如果你有些庫還沒有安裝,導(dǎo)致運行代碼時報錯,可以在Anaconda Prompt中用pip方法安裝。
import json
import time
from captcha import *
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import wait
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
#導(dǎo)入庫
復(fù)制
2 確定好購票基本信息
導(dǎo)入庫后,在python代碼中填寫你購票的基本信息。
purpose = 'ADULT' #購買成人票,如果是學(xué)生票,需調(diào)整代碼
names = ['謝朝陽'] #填寫購票人姓名
date = '2021-09-21' #填寫購票日期
start_station = '深圳' #購票出發(fā)站
end_station = '長沙南' #購票目的站
password = '11234567xyz' #登錄12306的秘密
username ='xiezhaoyang122700' #登錄12306的賬號
trains = ['G1004', 'G80', 'G6028', 'G6182', 'G6016'] #你想買的班次
#填寫基本信息
復(fù)制
本文預(yù)訂的是2021年9月21日從深圳到長沙南的高鐵票,你可以根據(jù)自己的實際需要進行調(diào)整。
由于有些班次的時間過早或過晚,買了也很不方便,所以可以在trains中挑選出你滿意的班次進行購票。
在這里需要提醒大家,我之前在嘗試代碼時碰到的坑,那就是時間中如果有個位數(shù)要在前面填0。
比如2021年9月2日,你在填寫購票日期date時要寫成'2021-09-02',否則在運行代碼時日期總是填不進去。
3 登錄12306
確定好購票的基本信息后,就可以應(yīng)用python模擬登錄12306了,代碼如下:
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
browser = webdriver.Chrome(options=options)
browser.maximize_window()
login_url = ''
#ticket_url = ''
browser.get(login_url)
time.sleep(0.5)
wait.WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.CLASS_NAME,'login-hd-account'))).click()
input_name = browser.find_element_by_id('J-userName')
input_pd = browser.find_element_by_id('J-password')
input_name.send_keys(username)
input_pd.send_keys(password)
login = browser.find_element_by_id('J-login')
login.click()
#登錄12306
復(fù)制
整體思路是:
應(yīng)用python模擬調(diào)用google瀏覽器;
輸入12306網(wǎng)址;
等網(wǎng)頁加載完全后點擊賬戶密碼登錄;
找到賬號密碼的id,把賬戶密碼信息填充進去;
找到登錄id,模擬點擊登錄按鈕。
在這一小節(jié)中要注意兩個點。一是要在python安裝目錄中放和google版本匹配的chromedriver,供python調(diào)用。
二是要學(xué)會找填寫賬戶密碼信息的id。
首先,在google瀏覽器中輸入12306登錄網(wǎng)址:。
接著點擊賬戶密碼登錄,會出現(xiàn)如下界面。
然后點擊紅框中的三個點,找到更多工具,點擊開發(fā)者工具,會出現(xiàn)如下界面。
點擊紅框中的箭頭,把鼠標移動到賬戶框上去,就會出現(xiàn)如下界面:
undefined
右邊變灰的框里就會出現(xiàn)對應(yīng)的id,點擊賬號框,再把鼠標移動到右邊變灰的字符上去,點擊右鍵,會出現(xiàn)copy element的選項,復(fù)制下來即可。
input type="text" class="input" id="J-userName" placeholder="用戶名/郵箱/手機號" style="height: 44px; line-height: 44px; outline: black 0px;" aria-label="請輸入用戶名/郵箱/手機號" title="請輸入用戶名/郵箱/手機號"
復(fù)制
發(fā)現(xiàn)了嗎?源代碼input_name中要填寫的browser.find_element_by_id('J-userName')內(nèi)容,即為id="J-userName"中的信息。
4 模擬滑動滑塊
輸入完用戶名和密碼,點擊立即登錄后,會出現(xiàn)如下滑塊驗證要求。
運行如下代碼即可拖動滑塊進行驗證。
browser.implicitly_wait(5)
print('=====開始處理滑動驗證碼=====')
track = [300, 400, 500]
for i in track:
try:
btn = browser.find_element_by_xpath('//*[@id="nc_1__scale_text"]/span')
ActionChains(browser).drag_and_drop_by_offset(btn,i,0).perform()
except:
time.sleep(2)
#拉動滑塊驗證
復(fù)制
其中,browser.implicitly_wait(5)表示隱性等待5秒,track中放的是滑塊拉動的距離。
5 處理疫情特殊要求
完成滑塊驗證要求后,會出現(xiàn)如下疫情特殊要求提示:
用如下代碼點擊確認即可。
browser.implicitly_wait(5)
browser.find_element_by_xpath('/html/body/div[5]/div[2]/div[3]/a').click()
time.sleep(2)
#疫情特殊要求
復(fù)制
browser.find_element_by_xpath和id的區(qū)別是,在右鍵復(fù)制時要copy XPath或copy full XPath。
6 點擊購票并填寫出發(fā)地、目的地、出發(fā)時間
接下來是選擇買票,并將出發(fā)地、目的地、出發(fā)時間等信息填寫進去。
browser.find_element_by_xpath('//*[@id="J-chepiao"]/a').click()
browser.find_element_by_xpath('//*[@id="megamenu-3"]/div[1]/ul/li[1]/a').click()
browser.find_element_by_xpath('//*[@id="qd_closeDefaultWarningWindowDialog_id"]').click()
#選擇買票
def input_info():
print('=====開始買票=====')
from_station = browser.find_element_by_xpath('//*[@id="fromStationText"]')
from_station.send_keys(Keys.ENTER)
from_station.send_keys(Keys.CONTROL, 'a')
from_station.send_keys(start_station, Keys.ENTER)
browser.implicitly_wait(5)
to_station = browser.find_element_by_xpath('//*[@id="toStationText"]')
to_station.send_keys(Keys.ENTER)
to_station.send_keys(Keys.CONTROL, 'a')
to_station.send_keys(end_station, Keys.ENTER)
browser.implicitly_wait(5)
start_date = browser.find_element_by_xpath('//*[@id="train_date"]')
start_date.send_keys(Keys.ENTER)
start_date.send_keys(Keys.CONTROL, 'a')
start_date.send_keys(Keys.CONTROL, 'x')
start_date.send_keys(date, Keys.ENTER)
browser.implicitly_wait(5)
wait.WebDriverWait(browser, 3).until(EC.element_to_be_clickable((By.ID,'query_ticket'))).click()
input_info()
input_info()
#將出發(fā)地、目的地、出發(fā)日期填進去
復(fù)制
得到結(jié)果如下:
這里需要注意的是我調(diào)用了兩遍input_info函數(shù),因為12306可能采取了一些反爬措施,一遍輸入進去后查不出東西,顯示為灰色。
7 鎖定車票
最后是依次查找trains中的車次是否有票,有的話點擊購買鎖定車票。
trList = browser.find_elements_by_xpath(".//tbody[@id='queryLeftTable']/tr[not(@datatran)]")
for tr in trList:
trainNum = tr.find_element_by_class_name("number").text
if trainNum in trains:
leftTicket = tr.find_element_by_xpath(".//td[4]").text
print('leftTicket', leftTicket)
if leftTicket == '有' or leftTicket.isdigit():
orderBtn = tr.find_element_by_class_name("btn72")
orderBtn.click()
browser.implicitly_wait(5)
passengerLabels = browser.find_elements_by_xpath(".//ul[@id='normal_passenger_id']/li/label")
for passengerLabel in passengerLabels:
name = passengerLabel.text
if name in names:
passengerLabel.click()
browser.implicitly_wait(20)
# 獲取提交按鈕
submitBtn = browser.find_element_by_id("submitOrder_id")
submitBtn.click()
browser.implicitly_wait(20)
confirmBtn = browser.find_element_by_id("qr_submit_id")
confirmBtn.click()
time.sleep(2)
browser.implicitly_wait(20)
confirmBtn = browser.find_element_by_id("qr_submit_id")
confirmBtn.click()
break
#依次查找trains中的車次是否有票,有的話點擊購買
復(fù)制
所以,如果你有特別心儀的車次,可以在trains中放在最前面,依次填寫覺得還行的車次。
至此,應(yīng)用python解鎖搶票軟件背后的原理已講解完畢,感興趣的朋友可以自己跟著本文實現(xiàn)一遍。
12306不定期會更新買票界面,所以過一段時間可能之前的代碼就要進行一些調(diào)整,需要自己弄清里面的原理,才可以以不變應(yīng)萬變。
本文的代碼沒有進行高級的封裝,只為大家能更清楚地了解每一步,能在搶票高峰期買到自己心儀的票。
也寫得很基礎(chǔ),沒有進一步的調(diào)優(yōu)縮短時效,感興趣的朋友可以自行研究,如有任何疑問可以跟我溝通。
6
搶票軟件原理 - Python實戰(zhàn)案例教學(xué)(視頻講解) 12306...
?
2020年12月7日python有很多方法去實現(xiàn)搶票,其基本原理,就是讓程序自動模擬人去操作12306網(wǎng)站
7
為什么會實行搶票機制?
?
其他所謂的搶票,根本原理就是幫你時時刻刻盯著12306而已。無論哪一家的搶票,最終都是要通過.
分享標題:wordpress反爬 網(wǎng)站反爬
本文地址:http://www.chinadenli.net/article10/ddoiego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、標簽優(yōu)化、電子商務(wù)、用戶體驗、云服務(wù)器、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)