看板 Python 關於我們 聯絡資訊
https://reurl.cc/yZgRXD 上面是用Python抓八卦版資訊,我不懂得是: 1.第29行有個articles = [] ,第71行也有個 articles = [],為什麼?如果都是要儲存 文章,那第71行的 articles = []需要寫嗎? 2.def get_author_ids(posts, pattern): ids = set() for post in posts: if pattern in post['author']: ids.add(post['author']) return ids 這邊完全看不懂,而且跟前面那個抓作者的資料有關係嗎?他之前不就寫: author = '' # author = d.find('div', 'author').text if d.find('div', 'author') else '' 那不就用#後面那行就好了?為什麼還要def get_author_ids這個函數? 請大大指教,感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.56.12.220 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1584338168.A.F84.html
darama: 1. variable scope不一樣 03/16 14:47
darama: 2. 他main有註解這個func的用途 你再看看吧 03/16 14:49
DeepLearning: 爬文可以考慮 PyPtt 爬得比較快 03/16 17:57
DeepLearning: https://github.com/PttCodingMan/PyPtt 03/16 17:57
GreatDaiDai: 感謝!但我比較想用懂為什麼 03/16 20:11
alvinlin: 1. 第29行是副程式,71是主程式 03/16 21:33
alvinlin: 副程式的變數在副程式跑完就不存在了但它跑完前return給 03/16 21:35
alvinlin: 主程式了 03/16 21:35
alvinlin: 2.def get_author_ids 這個副程式用set 集合去累加,當 03/16 21:37
alvinlin: 文章的作者裡有特定字串的 03/16 21:37
alvinlin: 但author = '' ,後面#已經被註釋掉了 03/16 21:38
alvinlin: 所以要看書裡怎麼寫。 03/16 21:38
alvinlin: 其實這段code我在書裡看過。 03/16 21:39
alvinlin: 原書上的是沒有# 的。所以如有照原書的意思, 5566那個 03/16 21:46
alvinlin: 只是讓你想去抓特定作者時用,但預設沒有去抓 03/16 21:46
alvinlin: 所以。照原書的code是有關係啊。就是去抓div裡author的 03/16 21:48
alvinlin: 字串,把不重複的作者全部列出來 03/16 21:48
alvinlin: 補充1,所以,他們兩只是剛好變數名相同。 03/16 21:49
alvinlin: 去跑debug mode就看得出來了 03/16 21:49
alvinlin: 所以。71行需要寫啊,不然這個值不會寫入檔案 03/16 21:51
alvinlin: 其實DeepLearning哥是專家,他哥CodingMan哥也是。 03/16 22:04
alvinlin: 看起來是一本書裡第三和第五章都用同樣的副程式啦。有些 03/16 22:08
alvinlin: 有被call有些沒有。這不重要啦。 03/16 22:08
alvinlin: 簡單想看結果把副程式全部放回主程式一行一行跑就知道結 03/16 22:10
alvinlin: 果了 03/16 22:10
GreatDaiDai: 感謝A大!太詳細了! 03/17 10:02
alvinlin: ^^ 03/17 20:15