logo
Loading...

如何檢查網址的正確性 re.compile('.*')意思 params=payload的意思 - Cupoy

1. 想問一下,我有先觀察網址的規律(如註解地方),可是我想知道code跑得對不對,所以想print...

如何檢查網址的正確性 re.compile('.*')意思 params=payload的意思

2019/12/13 下午 00:17
Python網路爬蟲討論版
cham chen
觀看數:9
回答數:5
收藏數:4

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次或多次。老師說的符合"."開頭,感覺比較像加上\轉義: ("\.")的意思?