Python 및 BeautifulSoup 초보자는 여기에 있습니다.수 백 페이지 깊이의 스크랩 스레드/BeautifulSoup
각 페이지 당 50 개의 개별 스레드가 포함 된 약 500 페이지의 포럼을 다듬려고합니다. 이 스레드 중 일부는 약 200 페이지 분의 게시물을 포함합니다. 나는 아무 문제 추출이 없지만
page_list = ['http://forum.doctissimo.fr/sante/diabete/liste_sujet-1.htm']
:
는내가 자동화 된 방식으로 전체 포럼의 관련 부분을 긁어 수있는 프로그램을 작성하고 싶습니다 엔트리 포인트로 하나의 URL을 공급 된 개별 스레드와 스레드를 포함하는 페이지 모두에 대해 '다음 링크'... :
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'
은 정말 갇혔어요. 모든 도움이 가장 환영받을 것입니다!
'for itertools.chain.from_iterable (page_list) :'에 대한 페이지입니다. –
답장 시간을내어 주셔서 감사합니다, Padraic. 유감스럽게도 다음과 같은 오류가 발생합니다. ValueError : 알 수없는 URL 유형 : 'h'. 이 일을하는 또 다른 방법이 있습니까? – Gabriel