이 페이지의 일부 링크를 다 고칩니다.링크를 당기고 파이썬에서 해당 페이지를 긁음
http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/wnba/teams/pastresults/2012/team665231.html
이것은 내가 원하는 링크를 얻습니다.
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
boxscores = soup.findAll('a', href=re.compile('boxscore'))
페이지의 모든 상자 스코어를 마킹하고 싶습니다. 나는 이미 박스 스코어를 긁어 모으기위한 코드를 만들었지 만 나는 그것들을 얻는 방법을 모른다.
편집 나는 HTML 태그를 제거합니다 때문에이 방법이 더 나은 것 같아요. 나는 아직도 그들을 여는 법을 알 필요가있다.
for link in soup.find_all('a', href=re.compile('boxscore')):
print(link.get('href'))
EDIT2 : 이 내가 페이지의 첫 번째 링크에서 데이터의 일부를 긁어 방법이다.
url = 'http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/wnba/results/2012/boxscore841602.html'
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
def _unpack(row, kind='td'):
return [val.text for val in row.findAll(kind)]
tables = soup('table')
linescore = tables[1]
linescore_rows = linescore.findAll('tr')
roadteamQ1 = float(_unpack(linescore_rows[1])[1])
roadteamQ2 = float(_unpack(linescore_rows[1])[2])
roadteamQ3 = float(_unpack(linescore_rows[1])[3])
roadteamQ4 = float(_unpack(linescore_rows[1])[4])
print roadteamQ1, roadteamQ2, roadteamQ3, roadteamQ4
그러나 이것을 시도 할 때.
url = 'http://www.covers.com/pageLoader/pageLoader.aspx? page=/data/wnba/teams/pastresults/2012/team665231.html'
boxurl = urllib2.urlopen(url).read()
soup = BeautifulSoup(boxurl)
tables = pages[0]('table')
linescore = tables[1]
linescore_rows = linescore.findAll('tr')
roadteamQ1 = float(_unpack(linescore_rows[1])[1])
roadteamQ2 = float(_unpack(linescore_rows[1])[2])
roadteamQ3 = float(_unpack(linescore_rows[1])[3])
roadteamQ4 = float(_unpack(linescore_rows[1])[4])
이 오류가 발생합니다. 테이블 = pages0형식 오류는 'STR'객체는
print pages[0]
정상 같은 첫 번째 링크의 HTML을 모두 뱉어 호출하지 않습니다. 잘하면 그것은 너무 혼란스럽지 않습니다. 요약하면 지금은 링크를 얻을 수 있지만 여전히 링크를 얻을 수 있습니다. 첫 번째 페이지는 그래서
이 같은
당신이로 해당 페이지를 사용하는 경우 "크롤링"베이스 - 당신은 [scrapy] (http://scrapy.org) –
을 살펴볼 수 있습니다. 이제 질문을 분명히 했으므로 이전 답변을보고 싶을 것입니다. http://stackoverflow.com/questions/ 15866297/matching-specific-table-within-html-beautifulsoup/15866957 # 15866957 당신이해야 할 일은 체계적으로 작업하는 것뿐입니다. – Vorsprung
나는 원하는 테이블을 찾아서 긁을 수 있습니다. 이 경우 웹 페이지의 두 번째 테이블입니다. 그래서 tables = soup ('table') linescore = 테이블 [1]은 내가 원하는 테이블을 선택합니다. 문제가있는 곳은 링크에서 웹 페이지를 연 다음 테이블을 선택하는 것입니다. – user2333196