2017-05-08 1 views
1
url="https://technet.microsoft.com/enus/library/hh135098(v=exchg.150).aspx" 
r = requests.get(url) 
soup = BeautifulSoup(r.content, 'lxml') 
table = soup.find_all('table', attrs={"responsive": "true"})[0] 
for rows in table.find_all('tr')[1:2]: 
    item = [] 
    for val in rows.find_all('td'): 
     item.append(val.text.strip())` 

동일한 웹 사이트에서 4 개의 다른 테이블을 통해이를 반복하려고 시도하지만 루프를 작성하는 방법을 알 수 없습니다. 나는 그것에 대한 연구를했고 무엇을 해야할지 알 수없는 것 같습니다.파이썬 : 여러 테이블을 긁어 내기

4 개의 테이블은 0, 1, 2 및 6 위치에 있습니다. 나는 그들을 포함하도록 데이터를 자르려고 시도했지만 아무것도 보이지 않습니다. 발생 지수에 의존, 일반적으로

desired_indexes = {0, 1, 2, 6} 
tables = soup.find_all('table', attrs={"responsive": "true"}) 
for index, table in enumerate(tables): 
    if index not in desired_indexes: 
     continue 

    # do something with table 

하지만 : 당신은 당신의 필터링 기준과 일치하는 모든 테이블을 찾을 수 있습니다

답변

2

일을 원하지 않는 인덱스에서 테이블을 인덱스를 얻을 "필터링"을 enumerate()를 사용하려면 페이지에서 요소의 위치를 ​​찾는 신뢰할 수있는 기술처럼 들리지 않습니다.

+0

감사하게도 이러한 인덱스는 변경되지 않으며 이러한 스크립트는 한 달에 한 번만 실행되며 우선 순위는 낮습니다. 그들은 단지 일해야만합니다. 이것은 완벽하게 작동했습니다. 감사합니다. –

관련 문제