나는 주어진 사이트로부터 모든 링크를 얻는 파이썬 웹 스크래핑 프로그램을 가지고 있으며, 그 후에 각 링크와 패스의 도메인 이름을 프린트 할 수있다.파이썬 웹 스크래핑 - URL의 일부만 프린트하기
코드 :
import urllib
import re
import mechanize
from bs4 import BeautifulSoup
import urlparse
import cookielib
url = "http://www.sparkbrowser.com"
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_robots(False)
br.set_handle_equiv(False)
br.set_handle_redirect(True)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
page = br.open(url, timeout=5)
htmlcontent = page.read()
soup = BeautifulSoup(htmlcontent)
for link in br.links(text_regex=re.compile('^((?!IMG).)*$')):
newurl = urlparse.urljoin(link.base_url, link.url)
base = link.base_url
print base," - ",newurl
과 나를 얻는다는 다음과 같이 결과 :
http://www.sparkbrowser.com - http://www.sparkbrowser.com
http://www.sparkbrowser.com - http://sparkbrowser.com
http://www.sparkbrowser.com - http://www.sparkbrowser.com/index.php
http://www.sparkbrowser.com - http://www.sparkbrowser.com/download.php
http://www.sparkbrowser.com - http://www.sparkbrowser.com/about.php
http://www.sparkbrowser.com - http://www.sparkbrowser.com/features.php
http://www.sparkbrowser.com - http://www.sparkbrowser.com/spark.php
etc....
나는 단지 지정된 주소에서만 sparkbrowser.com
또는 sparkbrowser
을 얻는 방법을 궁금 해서요?
나는 도메인 이름, http://www.sparkbrowser.com
및 경로를 분리하는 방법을 알고 있지만, 내가 정규식 뭔가를 시도했습니다
내가 언급 한 바와 같이 URL의 일부를 인쇄 할 수 있습니다 나도 몰라하지만 난이었다 성공하지 못했습니다.
어떤 도움을 환영합니다.
이것은 나를 사용합니다 ... 정말 고마워요! – dzordz