2017-12-25 3 views
-2

일부 데이터를 긁어 내려고했지만 해결책을 찾은 것 같지만 코드를 작성하는 데 어려움을 겪고 있습니다.len (항목)을 색인으로 추가하는 데 도움이 필요합니다.

# This returns a list that changes depending on the page  
description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract() 

나는 정확한 LEN (설명)을 취득하고, 그래서 예를 들면

(나는 단어 제대로 인덱스를 사용하고있는 경우하지 않도록) 그 길이가 설명 지표로 추가 필요

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract() 

len(description) 

설명의 길이는 코드가

말을 할 필요가 4

경우

참고 : 거기에 '-'및 ':'이 필요합니다.

len이 항상 변경되도록 여러 페이지를 훑어보고 있습니다. 나는 이것을 위해 새로운 함수를 작성할 필요가 있다고 가정한다. 도움이 될 것입니다.

+1

len을 정확히 사용하는 방법이 명확하지 않으므로 해당 설명에 대한 설명과 원하는 결과를 제공하십시오. – Gnudiff

+0

무엇이든지 len을 사용하여 설명을 색인화했습니다. 나는 csv로 스크랩 한 데이터를 출력 할 때 "설명"셀이 항상 비어있는 걸림돌로 빠져 있습니다. [-1 :]을 색인으로 사용했을 때 설명에있는 목록이 하나 뿐인 나머지는 표시되고 나머지는 표시되지 않습니다. 정확한 len을 사용하면 모든 설명이 작동하도록 할 수 있기를 바랍니다. –

+0

아직 실제로 달성하기 위해 노력하고있는 예제가 명확하지 않습니다. – Gnudiff

답변

-1

사용 변수 :

그래서 첫 번째 단계는 당신의 설명을)합니다 (렌을 추출하고 변수에 그 렌을 저장

len_= int(response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()) 

그런 다음에 의해 확인 if 조건 :

if len(len_)==4: 

위의 조건이 참이면 다음 코드 아래 실행 :

번째 단계는 현재 슬라이스에 대한 index_no으로 그 변수를 사용

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()[-len_:] 
+0

내가 뭘 잘못하고 있는지 알 겠어. '['+ len_ + ':]'을 수행하여 len_을 연결하려고했습니다. 시간이 있다면 왜 그런 식으로 연결할 수 없었는지 설명 할 수 있습니까? 어쨌든 도와 주셔서 감사합니다.) –

+0

@DanielAhn 내 솔루션이 도움이된다면 [답변을 수락하십시오.] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

+0

@DanielAhn 이것을 할 때 추가 코드없이 단순히 extract()를 사용하는 것과 동일한 결과를 얻고 있다는 것을 알고 있습니까? 다른 두 개의 대답을 통해 x [-len (x) :] == x – Gnudiff

0

코드

my_list[-len(my_list):] 

항상

my_list[-x:] 

의미하기 때문에, 원래 목록 (사본, 사실)을 반환합니다 "my_list의 마지막 x 요소를 얻을"당신은 설정하는 x을 목록의 요소 수만큼 비교하여 모두 가져옵니다. 예를 들어

: 전체

In [1]: my_list = [1, 2, 3, 4] 

In [2]: my_list[-len(my_list):] 
Out[2]: [1, 2, 3, 4] 

, 그것은 당신이 요구하는지 매우 분명하지 않다. 당신의 질문을 다시 할 수 있겠습니까? 대신 일정이의

-1
# This returns a list that changes depending on the page  
description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract() 

가정한다 길이가 4 길이

len(description) 

를 찾으려면.그래서 다시 동일한 목록 여기서 다시

description = response.xpath('.//*[@class="txtGrey size14-description"]/text()').extract()[-4:] 

를 반환하는 일 예를되는 일을하는 것은 명확하게하기 :

>>> a=[1,2,3,4,5,6,7,8,9] 
>>> print(a) 
[1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> len(a) 
9 
>>> a=a[-(len(a)):] 
>>> print(a) 
[1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> print(a[-9]) 
1 

이이 목록의 시작에 [-9] 점 때문에 따라서 [-9 :]는 목록의 끝까지 또는 전체 목록을 다시 나타냅니다.

관련 문제