Re: [問題] 關於程式輸出時如何呼叫第二支程式的問題

作者: octantis (@.@)   2016-04-22 05:15:39
※ 引述《busystudent (busystudent)》之銘言:
: a主程式碼
: http://dpaste.com/2S5SC2B
你主程式碼下面有問題
links = ['http://www.diigo.com/user/tony_swann/' + a ]放到外面去
否則只有一個然後包成list再用for進去list裡讀出來有何意義?
改成:
links = ['http://www.diigo.com/user/tony_swann/' + x for x in tag_list]
for link in links:
res = requests.get(link)
soup = BeautifulSoup(res.text.encode("utf-8"), 'html.parser')
fol_table = soup.findAll('div', {'class': 'Titleinner'})
a_links = [tag['href'] for link in fol_table
for tag in link.findAll('a', {'href': True})]
#將一個tag的所有結果放進同一個list,然後將list丟給b主程式碼
可簡化成a_links = [a['href'] for a in soup.select('div.Titleinner a')]
將fol_table與a_link合併
結構:
links裡裝所有的標籤
a_link為一個標籤裡的所有分析到的網址
然後把a_link丟進b主程式碼
: b主程式碼
: http://dpaste.com/1A5ZHM8
不知道是不是你要的答案,你的問題我要想很久才猜得到你"可能"想表達的意思...
列出你想得到的答案型式,不然光猜就要猜好久
作者: MOONY135 (談無慾)   2016-04-22 10:24:00
看描述就覺得好亂喔...
作者: busystudent (busystudent)   2016-04-22 12:01:00
你好 謝謝你的回文,之前的敘述不好,不好意思我把文章敘述修改了你好 有一行我看不懂,想請你解釋a_links = [tag['href'] for link in fol_tablefor tag in link.findAll('a', {'href': True})]這一行是什麼意思?我第一看到撰寫兩種for在一行的式子
作者: octantis (@.@)   2016-04-22 17:03:00
就是相當於for迴圈裡再一個for迴圈不然就是用下面寫的簡化版 看起來比較乾淨簡單那行等於for link in fol_table:for tag in link.findAll('a', {'href': True}):a_links.append(tag['href'])
作者: busystudent (busystudent)   2016-04-22 17:09:00
謝謝你的說明!還有簡化版那行一否有誤,它報錯'NoneType'執行如下 http://dpaste.com/196AJ7F
作者: octantis (@.@)   2016-04-22 20:14:00
啊!你是用bs3而非bs4,難怪會出錯,bs3可能沒法這樣用

Links booklink

Contact Us: admin [ a t ] ucptt.com