[問題] 爬蟲網站

看板Python作者 (痛苦)時間3年前 (2020/10/14 01:44), 編輯推噓8(8016)
留言24則, 10人參與, 3年前最新討論串1/1
請教大家有關爬蟲問題 我有爬蟲各航空公司的貨物運單狀態 甲去大陸購物 可從業者提供的報關單、主提單、副提單 查到包裹狀態 例如:飛機起飛與否等資訊、清關狀態 這是華航的CARGO 貨況查詢 網站 https://reurl.cc/5qKZzq 因為有JS所以利用selenium+BeautifulSoup 可以輕鬆爬到任何html資料 我不是用path下去定位而是抓取id找想要的到資料 但有些id長這樣: ContentPlaceHolder1_rpFlightEvent_lblWgt_0 ContentPlaceHolder1_rpFlightEvent_lblPcs_0 ContentPlaceHolder1_rpFlightEvent_lblArrTime_0 ContentPlaceHolder1_rpFlightEvent_lblOff_0 Q1.id尾數都是無意義的亂碼字母與數字組成 我這次可以輕鬆爬到資料,下次該怎防範尾數產生新的亂碼id了? Q2.如Q1. 網站這樣做 算是反爬蟲手段之一嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.210.16 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1602611080.A.48D.html

10/14 02:31, 3年前 , 1F
這應該是aspnet寫的 你爬的是grid資料?
10/14 02:31, 1F

10/14 02:31, 3年前 , 2F
印象中grid每列裡的控制項會長一個數字
10/14 02:31, 2F

10/14 11:42, 3年前 , 3F
A2. 我沒點進去,但那可能是前端框架如react編譯後的
10/14 11:42, 3F

10/14 11:42, 3年前 , 4F
產物,下次他再編譯上新版前端,亂碼可能就會變,確
10/14 11:42, 4F

10/14 11:42, 3年前 , 5F
實可以防爬蟲,但你就不要抓id就好
10/14 11:42, 5F

10/14 11:43, 3年前 , 6F
只是他最尾是0比較奇怪,通常會是一串hash code
10/14 11:43, 6F

10/14 12:03, 3年前 , 7F
execute script to find substr of id and return?
10/14 12:03, 7F

10/14 14:41, 3年前 , 8F
謝謝樓上 我先做一下功課樓上提到關鍵字
10/14 14:41, 8F

10/14 18:32, 3年前 , 9F
1F 1.我看這是ASPNET沒錯 2.我看前端碼沒有grid
10/14 18:32, 9F

10/14 18:33, 3年前 , 10F
用正則表達式看看能不能解決?
10/14 18:33, 10F

10/14 18:33, 3年前 , 11F
關鍵字 應該不是grid
10/14 18:33, 11F

10/14 18:35, 3年前 , 12F
3F 1.只有綁id了 連class都沒有
10/14 18:35, 12F

10/14 18:36, 3年前 , 13F
10F 我來研究正則是看看好了 擔心下次爬不到
10/14 18:36, 13F

10/14 18:38, 3年前 , 14F
7F 不太明白你意思 我已經可以輕鬆抓取id資料
10/14 18:38, 14F

10/14 18:39, 3年前 , 15F
但這id好像是亂碼產生 擔心下改抓不到Y
10/14 18:39, 15F

10/14 19:16, 3年前 , 16F
推7F大大 定位父元素往下找
10/14 19:16, 16F

10/14 22:59, 3年前 , 17F
Xpath很好用
10/14 22:59, 17F

10/15 10:06, 3年前 , 18F
可以利用regular去爬前面那些固定的字
10/15 10:06, 18F

10/15 11:42, 3年前 , 19F
這情況就用xpath,算是最快解決的方式了吧
10/15 11:42, 19F

10/15 15:09, 3年前 , 20F
如推文所述,我也習慣用Xpath定位,但你舉的這幾個例子
10/15 15:09, 20F

10/15 15:10, 3年前 , 21F
,看起來跟「亂碼」有點差距,是指哪幾個字是亂碼啊?
10/15 15:10, 21F

10/16 10:12, 3年前 , 22F
原po應該是想要表達『隨機碼』才對吧
10/16 10:12, 22F

10/16 17:50, 3年前 , 23F
我意思就是我看不出來哪裡亂碼/隨機,他舉的例子看起來
10/16 17:50, 23F

10/16 17:50, 3年前 , 24F
是有意義的縮寫不是?
10/16 17:50, 24F
文章代碼(AID): #1VXUU8ID (Python)