2017-01-03 1 views
0

저는 멋진 프로젝트를 진행하고 있지만 도움이 필요합니다. sslproxies.org에서 프록시를 수집하는 것을 볼 수 있지만 추가 정보없이 테이블에서 수집 된 프록시를 정렬하면 꽤 어렵습니다. 지금까지 내 코드는 작동하지 않습니다. u 남자들이 도울 수 있기를 바랍니다. 내가하고 싶은 일은 매 두번 후에 목록의 여섯 번째 항목을 지우는 것입니다.목록에서 항목 제거가 작동하지 않습니다.

f = open("proxies.txt", 'w+') 
def getProxy(): 
    url = "https://www.sslproxies.org" 
    source_code = requests.get(url) 
    plain_text = source_code.text 
    soup = BeautifulSoup(plain_text, "html.parser") 
    global tlist 
    tlist = [] 
    for tr in soup.find_all('tr'): 
     for td in tr.find_all('td'): 
      tlist.append(td) 
    clist = tlist 
    count = 0 
    for word in clist: 
     count += 1 
     if count > 2: 
      clist.remove(word) 
      count += 1 
      if count >= 6: 
       count = 0 
     else: 
      continue 
f.write(str(clist)) 
+4

앞으로 반복하는 경우 목록에서 항목을 제거하지 마십시오. 참조하십시오 : http://stackoverflow.com/documentation/python/3553/common-pitfalls/12259/list-multiplication-and-common-references#t=201701031652321895116 – MooingRawr

+0

또한 'if count> = 6'에 대한 것입니다. 괜찮아? –

+0

당신이 원하는 것에 대해 좀 더 명확해질 수 있습니까? 두 항목을 유지하고 4 개를 삭제하고 2 개를 유지 한 다음 4 개를 삭제 하시겠습니까? –

답변

0

처음 2 열을 선택하고 싶습니다. 이 경우 pandas read html과 같이 시도해보십시오. 내가 언급 한 웹 사이트에 액세스 할 수 없다는 점에 유의하십시오. 그래서 내가이 코드 여기

import pandas as pd 
df=pd.read_html(io ='https://www.sslproxies.org') 
print df 
print df[['IP Address','Port']] # select the columns that you are interested in 
1

를 테스트하지 않았습니다 후 산출 한 후, 두 항목을 산출 발전기입니다 육을 건너 뛰고 두 개 더, 등 당신은 같은 목록을 만들기 위해 이것을 사용할 수 있습니다

def skip_six(l): 
    for i, x in enumerate(l): 
     if i%8 <= 1: 
      yield x 

clist = list(skip_six(tlist)) 
+0

이것은 완벽합니다. 선생님, 그저 놀랍습니다. 고맙습니다. –

관련 문제