Python에서 BeautifulSoup을 사용하여 화면을 스크래핑하는 코드가 생겨 두통을 겪고 있습니다. html에 대한 약간의 변경으로 인해 코드가 손상되었지만 작동하지 않는 이유는 알 수 없습니다. 이것은 기본적으로 구문 분석시에 HTML을 모습의 데모입니다 :find_all이 혼합 된 내용으로 텍스트를 찾지 못합니다.
soup=BeautifulSoup("""
<td>
<a href="https://alink.com">
Foo Some text Bar
</a>
</td>
""")
links = soup.find_all('a',text=re.compile('Some text'))
links[0]['href'] # => "https://alink.com"
업그레이드 후, 태그의 몸은 이제 코드 휴식을 만드는 img 태그가 포함되어 있습니다.
<td>
<a href="https://alink.com">
<img src="dummy.gif" >
Foo Some text Bar
</a>
</td>
'링크'는 이제 빈 목록이므로 정규식에서 아무 것도 찾을 수 없습니다. 그때 혼자 텍스트에 일치하는 부모를 찾아 주위 해킹,하지만 훨씬 더 깨지기 쉬운 것 같다
links = soup.find_all(text=re.compile('Some text'))
links[0].parent['href'] # => "https://alink.com"
이 깨는 텍스트 내용에 형제로 img 태그의 추가 무엇입니까 검색은 BeautifulSoup에 의해 수행되었고, 거기에 첫 번째 코드를 수정하는 방법이 있습니까?
link.text의 "Some text"가 ' –
'인 경우 '다음'(soup.find_all ('a')의 링크에 대한 링크 [ "href"]가 아닌 이유는 무엇입니까? next() 호출은 무엇을합니까? – oligofren
은 원하는 링크가 될 첫 번째 일치 항목을 반환합니다. –