Spaces:
Runtime error
Runtime error
Update patent_downloader.py
Browse files- patent_downloader.py +13 -6
patent_downloader.py
CHANGED
|
@@ -3,8 +3,8 @@ import os
|
|
| 3 |
import requests
|
| 4 |
import re
|
| 5 |
import time
|
| 6 |
-
import shutil
|
| 7 |
import pandas as pd
|
|
|
|
| 8 |
from urllib.parse import urljoin
|
| 9 |
from bs4 import BeautifulSoup
|
| 10 |
from selenium import webdriver
|
|
@@ -13,6 +13,7 @@ from selenium.webdriver.chrome.options import Options
|
|
| 13 |
import chromedriver_autoinstaller
|
| 14 |
import subprocess
|
| 15 |
|
|
|
|
| 16 |
class PatentDownloader:
|
| 17 |
url = "https://patents.google.com"
|
| 18 |
|
|
@@ -94,7 +95,7 @@ class PatentDownloader:
|
|
| 94 |
if not pdf_link:
|
| 95 |
raise FileNotFoundError(f"No valid PDF link found for patent: {patent}")
|
| 96 |
|
| 97 |
-
#
|
| 98 |
pdf_url = urljoin("https://patentimages.storage.googleapis.com", pdf_link)
|
| 99 |
print(f"Found PDF link: {pdf_url}")
|
| 100 |
file_path = os.path.join(output_path, f"{patent}.pdf")
|
|
@@ -128,12 +129,17 @@ class PatentDownloader:
|
|
| 128 |
@staticmethod
|
| 129 |
def get_pdf_link(soup: BeautifulSoup) -> Optional[str]:
|
| 130 |
"""
|
| 131 |
-
Extract the
|
| 132 |
"""
|
| 133 |
-
|
| 134 |
-
|
|
|
|
|
|
|
| 135 |
if pdf_links:
|
| 136 |
-
|
|
|
|
|
|
|
|
|
|
| 137 |
return None
|
| 138 |
|
| 139 |
@staticmethod
|
|
@@ -141,6 +147,7 @@ class PatentDownloader:
|
|
| 141 |
"""
|
| 142 |
Download the PDF file from the given URL and save it.
|
| 143 |
"""
|
|
|
|
| 144 |
response = requests.get(pdf_url, stream=True)
|
| 145 |
response.raise_for_status()
|
| 146 |
with open(file_path, 'wb') as pdf_file:
|
|
|
|
| 3 |
import requests
|
| 4 |
import re
|
| 5 |
import time
|
|
|
|
| 6 |
import pandas as pd
|
| 7 |
+
import shutil
|
| 8 |
from urllib.parse import urljoin
|
| 9 |
from bs4 import BeautifulSoup
|
| 10 |
from selenium import webdriver
|
|
|
|
| 13 |
import chromedriver_autoinstaller
|
| 14 |
import subprocess
|
| 15 |
|
| 16 |
+
|
| 17 |
class PatentDownloader:
|
| 18 |
url = "https://patents.google.com"
|
| 19 |
|
|
|
|
| 95 |
if not pdf_link:
|
| 96 |
raise FileNotFoundError(f"No valid PDF link found for patent: {patent}")
|
| 97 |
|
| 98 |
+
# Build the complete PDF URL
|
| 99 |
pdf_url = urljoin("https://patentimages.storage.googleapis.com", pdf_link)
|
| 100 |
print(f"Found PDF link: {pdf_url}")
|
| 101 |
file_path = os.path.join(output_path, f"{patent}.pdf")
|
|
|
|
| 129 |
@staticmethod
|
| 130 |
def get_pdf_link(soup: BeautifulSoup) -> Optional[str]:
|
| 131 |
"""
|
| 132 |
+
Extract the PDF link from the page. Match links containing 'patentimages.storage.googleapis.com'.
|
| 133 |
"""
|
| 134 |
+
pdf_links = [
|
| 135 |
+
link['href'] for link in soup.find_all('a', href=True)
|
| 136 |
+
if 'patentimages.storage.googleapis.com' in link['href']
|
| 137 |
+
]
|
| 138 |
if pdf_links:
|
| 139 |
+
print(f"Found PDF link: {pdf_links[0]}")
|
| 140 |
+
return pdf_links[0]
|
| 141 |
+
|
| 142 |
+
print("No valid PDF link found on the page.")
|
| 143 |
return None
|
| 144 |
|
| 145 |
@staticmethod
|
|
|
|
| 147 |
"""
|
| 148 |
Download the PDF file from the given URL and save it.
|
| 149 |
"""
|
| 150 |
+
print("Downloading PDF...")
|
| 151 |
response = requests.get(pdf_url, stream=True)
|
| 152 |
response.raise_for_status()
|
| 153 |
with open(file_path, 'wb') as pdf_file:
|