2016-12-22 4 views
1

나는 shutterstock의 검색된 페이지에서 데이터 ID를 수집하려고합니다. 이것은 HTML의 모습입니다beautifulsoup를 사용하여 데이터를 별도로 저장하십시오.

<i class="i i-lightbox sstk-icon icon-plus-sign js_lightbox_add" data-id="253869514" data-tooltip-title="Add to a lightbox" data-lightboximageid="253869514" data-toggle="modal" data-target=".lightbox-modal" data-track="click.searchResults-saveToLightboxModal" data-original-title="" title=""></i> 

data-id 값을 저장하여 별도로 인쇄 할 수 있기를 바랍니다.

예를 들어,이 코드는 작동하지 않습니다, 그냥 반환 '(인쇄 n.get : "없음"

url = "https://www.shutterstock.com/search/test?autocomplete_id=&language=en&search_source=&version=llv1&image_type=images&safe=true" 
r = requests.get(url) 
data = r.text 
soup = BeautifulSoup(data) 
for n in soup.find_all('i'): 
    showdata = n.get('data-id') 

print showdata 

을 그리고 난에으로 만들었 = n.get ('데이터-ID ')를 변경하는 경우 data-id ') 모든 데이터 ID를 모두 반환합니다. 그래서 나는 모든 별도

답변

1

는이 작업을 수행하여 인쇄 할 수 없습니다

for n in soup.find_all('i'): 
    showdata = n.get('data-id')  
    print showdata 

당신은 이제까지 당신은으로 만들었을 덮어 반복 볼, 마지막 요소는 클래스 data-id이 없습니다.

그래서 당신에게 모든 비 없음의 목록을 제공합니다 일치 :이 많이 날 수 있습니다

all_data_ids = [] 
for n in soup.find_all('i'): 
    showdata = n.get('data-id') 
    if showdata: 
     all_data_ids.append(showdata) 

print all_data_ids 
+0

감사합니다. 이것은 내가 찾고 있었던 바로 그 것이다! – user7329477

+0

도와 드리겠습니다. :) 그냥 upvote 그리고 SO에 대한 답변을 원하는대로하는 경우 – Roman

+0

이것은 새로운 계정 미안하기 때문에 나는 지금 upvote 수 없습니다! – user7329477

관련 문제