如何檢查網址的正確性 re.compile('.*')意思 params=payload的意思
1. 想問一下,我有先觀察網址的規律(如註解地方),可是我想知道code跑得對不對,所以想print看看網址,可是會有error,想問如何解? 或是說 可以問一下 params=payload 的用意?
2. 想問 hw中 re.compile('.*') 語法上是什麼用意?
3. lxml ? html5lib ? 差別在哪? 之前都是用 html5lib
4. 想問說大家會如何去爬蟲資料,我的方式是會print 出 soup 內文,並 一 一 對應去找我要的內容。但這樣相對很慢,而且資料量若很大,就會很難去找 (使用jupyter note,好像無法對output進行搜尋,如下圖,我想找"筆")
所以好奇有沒有一些tip或是一些經驗可以分享? 謝謝各位,耐心看完,不好意思 問這麼多
回答列表
-
2019/12/13 下午 05:20張維元 (WeiYuan)贊同數:3不贊同數:0留言數:1
1. 想問一下,我有先觀察網址的規律(如註解地方),可是我想知道code跑得對不對,所以想print看看網址,可是會有error,想問如何解? 或是說 可以問一下 params=payload 的用意?
=> params=payload 是 request.get() 的用法,會幫你把網址拼出來。要檢查拼的結果對不對,可以用 print(resp.url) 看。
-
2019/12/13 下午 05:23張維元 (WeiYuan)贊同數:2不贊同數:0留言數:1
2. 想問 hw中 re.compile('.*') 語法上是什麼用意?
=> 這是前幾天的 regex 用法,這邊想要找的應該是
data-theater_name
的值(符合 . 開頭) -
2019/12/13 下午 05:25張維元 (WeiYuan)贊同數:3不贊同數:0留言數:2
3. lxml ? html5lib ? 差別在哪? 之前都是用 html5lib
=> 這個是不同的解析工具,Soup 的工作是幫我們 HTML 的字串該解成物件結構。lxml 跟 html5lib 是告訴 Soup 怎麼拆解的工具,差別是新舊跟效能。
-
2019/12/13 下午 05:27張維元 (WeiYuan)贊同數:2不贊同數:0留言數:1
4. 想問說大家會如何去爬蟲資料,我的方式是會print 出 soup 內文,並 一 一 對應去找我要的內容。但這樣相對很慢,而且資料量若很大,就會很難去找 (使用jupyter note,好像無法對output進行搜尋,如下圖,我想找"筆")
=> 這邊可以搭配瀏覽器的開發者工具,可以參考這一篇同學的討論:https://www.cupoy.com/qa/club/ai_tw/0000016E62FB84E4000000026375706F795F72656C656173654B5741535354434C5542/0000016EFCF8C5290000000B6375706F795F72656C656173655155455354
-
2019/12/13 下午 10:57小糖果贊同數:1不贊同數:0留言數:1
你好:
2. movie_item = html.find_all("option", attrs={'data-name':re.compile('.*')})
運用到正則表達式應該是為了要取得data-name 這個屬性的值,就是各個電影的名稱,'.'代表匹配除了換行以外的任意字元,'*'代表匹配0次或多次。老師說的符合"."開頭,感覺比較像加上\轉義: ("\.")的意思?