찾다

 >  Q&A  >  본문

python - 怎么从BeautifulSoup得到的ResultSet里搜索想要的部分?

python脚本里的语句是

from bs4 import BeautifulSoup
import urllib2

response = urllib2.urlopen('http://xxxxxx')
html = response.read()
soup = BeautifulSoup(html)

res = soup.find_all(class_='pro-detail-price')

得到的res是ResultSet类型,print结果是:

[<p class="pro-detail-price">最低价格:<span>4399.0</span>(天猫旗舰店)
<p class="pro-detail-trend">
<iframe frameborder="0" height="210" scrolling="no" src="http://tool.manmanbuy.com/historyPro.aspx?w=290&amp;amp;h=210&amp;m=1&amp;e=0&amp;scroll=0&amp;id=327958" width="290"></iframe>
</p>
</p>]

如果想在这个ResultSet里找到特定的标签改用什么办法呢? 比如找到<span>4399.0</span>里的4399.0

黄舟黄舟2806일 전1150

모든 응답(6)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 17:11:55

    으아아아

    이거 괜찮나요?

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:11:55

    find는 일치하는 첫 번째 결과만 반환하고 findAll은 ResultSet을 반환한다는 것을 기억합니다.
    따라서 찾기 결과는 직접 res.span.string이어야 하며 그렇지 않은 경우 res[0].span.string Bar

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:11:55

    find_all()find()는 사용하기 쉽지 않습니다. 가장 좋은 것은 CSS 선택자인 select()입니다.
    큰 틀을 얻었습니다(예: 수프에 담긴 태그인 경우).

    으아아아

    귀하의 예에서는 results[0]가 지정된 태그입니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:11:55

    으아아아

    무작위로 시도해봤는데 코드를 이렇게 변경해서 출력결과가 4399.0인데 마스터님이 더 좋은 방법을 제공해 주셨으면 좋겠습니다 감사합니다

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 17:11:55

    find로 찾은 결과에서 CSS 선택기 select를 사용하여 다음 위치 검색을 수행할 수 있습니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 17:11:55

    으아아아

    회신하다
    0
  • 취소회신하다