import os | |
import requests | |
from bs4 import BeautifulSoup | |
from urllib.parse import urljoin | |
from html2text import html2text | |
# Specify the URL of the webpage you want to scrape | |
url = "https://hoshikat-hatenablog-com.translate.goog/entry/2023/05/26/223229?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en-US&_x_tr_pto=wapp" | |
# Send HTTP request to the specified URL and save the response from server in a response object called r | |
r = requests.get(url) | |
# Create a BeautifulSoup object and specify the parser | |
soup = BeautifulSoup(r.text, 'html.parser') | |
# Find all image tags | |
images = soup.find_all('img') | |
for image in images: | |
# Get the image source | |
image_url = urljoin(url, image['src']) | |
# Get the image response | |
image_response = requests.get(image_url, stream=True) | |
# Get the image name by splitting the url at / and taking the last string, and add it to the desired path | |
image_name = os.path.join("./logs", image_url.split("/")[-1]) | |
# Open the image file in write binary mode | |
with open(image_name, 'wb') as file: | |
# Write the image data to the file | |
file.write(image_response.content) | |
# Convert the HTML content to markdown | |
markdown_content = html2text(r.text) | |
# Save the markdown content to a file | |
with open("converted_markdown.md", "w", encoding="utf8") as file: | |
file.write(markdown_content) | |