Python和BeautifulSoup新手在這裏。數百頁深的刮線w BeautifulSoup
我想刮一個論壇,有約500頁,其中每個包含50個單獨的線程。其中一些線程包含大約200頁的帖子。
我想編寫一個程序,可以刮掉以自動方式全論壇的相關部分,已被送入一個單一的URL作爲切入點:
page_list = ['http://forum.doctissimo.fr/sante/diabete/liste_sujet-1.htm']
雖然我沒有問題解壓在「下一個環節」兩個單獨的線程和包含線程的網頁...:
def getNext_link(soup0bj):
#extracts a page's next link from the Bsoup object
try:
next_link = []
soup0bj = (soup0bj)
for link in soup0bj.find_all('link', {'rel' : 'next'}):
if link.attrs['href'] not in next_link:
next_link.append(link.attrs['href'])
return next_link
...我只能和一個程序,它是種子URL,只從第一頁的內容提取它承載的每個線程的數量。然後程序結束:
for page in page_list:
if page != None:
html = getHTMLsoup(page)
print(getNext_link(html))
page_list.append(getNext_link(html))
print(page_list)
for thread in getThreadURLs(html):
if thread != None:
html = getHTMLsoup(thread)
print('\n'.join(getHandles(html)))
print('\n'.join(getTime_stamps(html)))
print('\n', getNext_link(html))
print('\n'.join(getPost_contents(html)),'\n')
我試圖追加了「未來鏈接」到page_list,但沒有奏效,因爲的urlopen然後嘗試訪問列表,而不是一個字符串。我也試過這樣:
for page in itertools.chain(page_list):
...但節目引發此錯誤:
AttributeError: 'list' object has no attribute 'timeout'
我很堅持。任何和所有的幫助將是最受歡迎的!
'用於itertools.chain.from_iterable(page_list)中的頁面:'。 –
感謝您花時間回覆Padraic。不幸的是,你的建議會導致以下錯誤:ValueError:未知的url類型:'h'。有沒有另外一種方法可以讓我看看? – Gabriel