2016-10-11 1 views
-3

출력 말씀이 없다?파이썬, 'NoneType'개체가 어떤 속성 'get_text'

response = requests.get("https://www.exar.com/careers") 

soup = BeautifulSoup(response.text, "html.parser") 

data = [] 

table_main = soup.find_all("table", class_="table") 
#pprint(table_main) 

for table_row in table_main: 
    job_category = table_row.find("th", class_="t3th").get_text().strip() 
    tds = table_row.find_all("td") 
    title = tds[0].find("td").get_text().strip() 
    location = tds[1].find("td").get_text().strip() 

    job = { 
     "job_location": location, 
     "job_title": title, 
     "job_dept": job_category 
    } 
    data.append(job) 

pprint(data) 
+1

'table_row.find_all ("td")'가 예상 한 데이터를 반환했는지 확인하기 위해 디버그 할 수 있습니다. –

+0

'tds [0] .find ("td")'및/또는'tds [1] .find ("td")'는'None'을 리턴합니다. 그것을 확인하고 싶을 수도 있습니다. – Biffen

+0

안녕하세요 @ cricket_007, table_row.find_all ("td")이 출력은 내가 원하는 모든 데이터를 찾을 수 있지만 tds = table_row.find_all ("td") 및 title = tds [0] .get_text () .strip()은 6 개의 데이터 만 표시합니다. 이 문제를 어떻게 해결할 수 있습니까? –

답변

2

당신이 td 내부 td의를 찾기 위해 노력하는 이유 확실하지가 여기에 S :

title = tds[0].find("td").get_text().strip() 
location = tds[1].find("td").get_text().strip() 

단지로 교체 :

title = tds[0].get_text().strip() 
location = tds[1].get_text().strip() 

작품을 나를 위해.

+0

감사합니다. 이것은 작동하지만 내 문제는 지금 그것이 단지 1 카테고리를 보여줄 것입니다; 1 직업. 일부 카테고리에는 1 개 이상의 직업이 있습니다. 나는 무엇을 할 것인가? –

관련 문제