##要は以下のようの処理を実装
https://www.対象のサイト.com (絶対URL) + /docs/101(相対URL)
↓
https://www.対象のサイト.com/docs/101 (絶対URL)としたい。
##①架空のDom構造を作る
from bs4 import BeautifulSoup
# <--実際のサイトでクロールver ※実際のサイトでクロールしたいときはコメントアウトをはずしてください
# from selenium import webdriver
# from selenium.webdriver.chrome.options import Options
# from time import sleep
# options = Options()
# #WebDriver(ブラウザ)の起動
# DRIVER_PATH = '/Users\あなたのUer名\Desktop\Selenium\chromedriver'
# driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
#//クロールver-->
#https://www.対象のサイト.com のhtmlが以下にあるとします.
html = """
<!DOCTYPE html>
<html lang="jp">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="category">
<div class="doc">
<span class="s">タイトル: <a href="/docs/101">相対パス1</a></span>
</div>
</div>
<div class="category">
<div class="doc">
<span class="s">タイトル: <a href="/docs/279">相対パス2</a></span>
</div>
</div>
<div class="category">
<div class="doc">
<span class="s">タイトル: <a href="/docs/312">相対パス3</a></span>
</div>
</div>
</body>
</html>
"""
html = BeautifulSoup(html, 'html')
##➁相対パスを取得し、現在のURLと結合する
実際のサイトで現在のURLディレクトリを取得する場合は
base_join_url = driver.current_url
等にすると良いです。
for documents in categories_all:
#aタグに相対パスがあるので
documents_tag_a = documents.select('.doc a')[0]
# hrefの値を取り出す
href_link = documents_tag_a.get("href")
# ベースURLと相対パスを結合する
base_join_url = 'https://www.対象のサイト.com'
links = base_join_url + href_link
#確認
print(links)
###https://www.対象のサイト.com/docs/101
https://www.対象のサイト.com/docs/279
https://www.対象のサイト.com/docs/312
上記のURLが取得でき、print出来ています。
#実際のURLでクロールしたい場合以下の処理を追加
# 実際のサイトでクロールver
#URLを開く
# sleep(3)
# driver.get(links)
#ブラウザバック
#
# sleep(3)
# driver.back()