728x90
다크웹 미러링 사이트를 크롤링하여 연결된 URL 들을 파싱 후 DB로 저장
1. 연결된 URL 파싱하기
import requests, sqlite3
from bs4 import BeautifulSoup
url = 'https://onions.danwin1210.de/'
response = requests.get(url)
# 상태 코드 확인 하기
if response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# a 태그안에 href를 사용하고있으면 파싱
for a in soup.findAll("a"):
href = a["href"]
# 만약에 ? 또는 https 또는 / 로 시작을 하면 넘김
if href.startswith("?") or href.startswith("https:") or href.startswith("/"):
continue
print(href)
else :
print(response.status_code)
2. DB 에 저장하기
import requests, sqlite3
from bs4 import BeautifulSoup
# DB 생성 (처음 실행 시 0byte 파일 생성, 이후 실행 시 기존에 있던 데이터베이스에 접근)
con = sqlite3.connect("tor_cr.db")
cursor = con.cursor()
# DB 생성
cursor.execute("CREATE TABLE IF NOT EXISTS url(onion TEXT);")
# DB 데이터 삽입
url = 'https://onions.danwin1210.de/'
response = requests.get(url)
if response.status_code == 200:
html = response.text
soup = BeautifulSoup(html, 'html.parser')
for a in soup.findAll("a"):
href = a["href"]
if href.startswith("?") or href.startswith("https:") or href.startswith("/"):
continue
# 데이터 삽입
cursor.execute('INSERT INTO url VALUES(?);', (href,))
# 데이터를 삽입한 후에는 commit() 을 호출하여 변경 사항을 데이터베이스에 반영
con.commit()
else:
print(response.status_code)
'S-DEV > 다크웹' 카테고리의 다른 글
다크웹 3 (0) | 2023.08.20 |
---|---|
Tor IP 국적 지정 (0) | 2023.08.20 |
다크웹 (0) | 2023.08.17 |
데이터베이스 (0) | 2023.08.13 |
Web Crowlling - 1 (0) | 2023.08.07 |