주어진 웹 페이지 내의 모든 링크를 찾아야하는 웹 크롤링 프로젝트를 진행 중입니다. 지금까지 urllib.parse
에 urljoin
을 사용하고있었습니다. 하지만 이제 일부 링크가 urljoin
함수를 사용하여 올바르게 결합되지 않은 것으로 나타났습니다.파이썬을 사용하여 href에서 전체 URL 추출
예 : <a>
태그는 <a href="a.xml?value=basketball">A</a>
과 같을 수 있습니다. 그러나 전체 주소는 http://www.example.org/main/test/a.xml?value=basketball
일 수 있지만 urljoin
함수는 잘못된 결과 (예 : http://www.example.com/a.xml?value=basketball
)를 제공합니다. 내가 사용하고
코드 :
parentUrl = urlQueue.get()
html = get_page_source(parentUrl)
bSoup = BeautifulSoup(html, 'html.parser')
aTags = bSoup.find_all('a', href=True)
for aTag in aTags:
childUrl = aTag.get('href')
# just to check if the url is complete or not(for .com only)
if '.com' not in childUrl:
# this urljoin is giving invalid resultsas mentioned above
childUrl = urljoin(parentUrl, childUrl)
내가 올바르게 이러한 경우를 포함하여 두 개의 URL에 가입 할 수있는 방법이 있습니까?
빌드 할 최소한의 작업 코드를 제공하면 도움을받을 가능성이 더 큽니다. – handle
당신이 뭔가 다른 것을 필요로하면 말해줘.하지만 내 주요 관심사는 때로는 전체 경로를 포함하지 않을 수 있습니다 href 속성을 사용하여 절대 링크 주소를 만드는 것입니다. –
메모를 삭제하십시오. 그것은 브라우저 기능입니다. –