python과 BeautifulSoup로 만든 크롤러에서 decompose() 함수를 작동시키는 데 문제가 있습니다.Python Crawler Beatifulsoup decompose() function
문제는 다음과 같습니다. 내가 사용하는 경우
soup = soup_function('http://www.processorstore.nl/product/476816/category-212194/intel-core-i7-4790k.html')
dt = soup.findAll('dt', {'class': 'product-specs--item-title'})
for i in range(0, len(dt)):
dtRows = dt[i]
dtRowsStrip = dtRows.text.strip()
print(dtRows.text.strip())
# print(dtRows)
# dtRowsSplit = "".join(dtRowsStrip.split())
# print(dtRowsSplit)
: 나는 (소스 코드에서 볼 수 있음) 웹 사이트의 제품의 모든 사양 데이터를 얻기 위해 노력하고 내가 출력으로 얻을
> print(dtRows.text.strip())
를이 :
Serie
Threads
Socket
Kloksnelheid
Fabrikantcode
Artikelnummer
Merk
Garantie
Garantietype
Serie
Serie
Socket
Socket
Codenaam
Codenaam
Threads
Threads
Turbo Frequency
Turbo Frequency
Multiplier unlocked
Multiplier unlocked
Cache
Cache
Geheugencontroller
Geheugencontroller
etc ....
첫 번째 완전한 행이 맞습니다. seccond 행에서 <a>
태그 (<dt>
태그 내) 때문에 이중 값을 얻습니다.
<dt class="product-specs--item-title">
<a class="product-specs--help-icon js-tooltip" href="#spec_Serie" title="Zowel AMD als Intel produceren processoren in verschillende series. Een serie is bedoeld voor bepaald gebruik. Zo zijn Core i3 processoren geschikt voor internet & office werkzaamheden en Core i7 processoren voor veeleisende multitasking en gaming. Binnen een serie zijn verschillende modellen processoren verkrijgbaar. Van welke serie is deze processor onderdeel?"><i class="icon icon-circle-questionmark"></i><span class="product-specs--help-title">Serie</span></a>
<span>Serie</span>
</dt>
누군가가 나에게 전체 <a>
태그를 삭제하는 데 도움이 수 :
한 예는 이것이다?
추가 정보 :
soup = soup_function('http://www.processorstore.nl/product/476816/category-212194/intel-core-i7-4790k.html')
for spec in soup.select('dt.product-specs--item-title'):
print(spec.get_text(strip=True))
출력은 다음과 같다 :
Serie
Threads
Socket
Kloksnelheid
Fabrikantcode
Artikelnummer
Merk
Garantie
Garantietype
SerieSerie
SocketSocket
CodenaamCodenaam
ThreadsThreads
Turbo FrequencyTurbo Frequency
Multiplier unlockedMultiplier unlocked
CacheCache
GeheugencontrollerGeheugencontroller
ProductieprocesProductieproces
Stroomverbruik maximaalStroomverbruik maximaal
KloksnelheidKloksnelheid
ProcessorkernenProcessorkernen
Type GPUType GPU
당신이 볼 수 있듯이 나는 다음과 같은 코드를 사용하는 경우
#. 두 번째<dl>
블록 이후에 이중 값을 얻습니다.
추가 : 감사합니다 ... 나는 또한 그것을 발견했습니다.난 당신의 코드가 더 알고 있지만 그냥 내 솔루션을 공유하기를 원해요 :
for spec in soup.select('div.product-specs dl.product-specs--list > dt.product-specs--item-title span.product-specs--help-title'):
print(spec.get_text(strip=True))
parent = spec.find_parent('dt')
value = parent.find_next_sibling("dd", {'class': 'product-specs--item-spec'})
print(value.text.strip())
첫 번째 행은 문제가이 arent. 두 번째
FrEaKi
여전히 값을 얻습니다. 더블. 포스트에 추가 코드를 추가하겠습니다. – FrEaKi
이제 다른 문제가 있습니다. :(전에 dd = dt.find_next_sibling ("dd", { '클래스': '제품 - 사양 - 항목 - 사양'}) 지금 나는 그것으로 프로퍼티 값을 얻을 수 없습니다. = Core i7 ... 마지막으로 한 번 도와주세요. – FrEaKi