

Windows10, ANACONDA.NAVIGATOR から JupyterLab 3.0.14 を起動して、  
"【Selenium】スクレイピング対策を突破する方法" サイトを参照して、コードをコピーペーストして実行した所、エラーが表示されました。  
エラーを検索して解決を試みましたが、自身のスキル不足で解決できません。  
ご教授お願いします。

**エラーメッセージ:**

[code]

    NameError                                 Traceback (most recent call last)                 
    <ipython-input-20-ed48c50edfbb> in <module>                 
    ----> 1 html = get_page_from_amazon(url)                    
                        
    NameError: name 'url' is not defined
    
[/code]

**ソースコード:**

[code]

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    def get_page_from_amazon(url):
         
        text = ""
        #　ヘッドレスモードでブラウザを起動
        options = Options()
        options.add_argument('--headless')
         
        # ブラウザーを起動
        driver = webdriver.Chrome("chromedriver.exe", options=options)
        driver.get(url)
        driver.implicitly_wait(10)  # 見つからないときは、10秒まで待つ
         
        text = driver.page_source
             
        # ブラウザ停止
        driver.quit()
         
        return text
    
    html = get_page_from_amazon(url)
    soup = BeautifulSoup(html, 'lxml')
    
    html = get_page_from_amazon(url)                    
    
[/code]

**参照サイトURL:**  
[【Selenium】スクレイピング対策を突破する方法 ](https://teshi-learn.com/2020-08/selenium-
scraping-regulation-breakthrough/?unapproved=25265&moderation-
hash=dcf1ff87f4d91166866a421833dd6d71#comment-25265)


CC BY-SA 4.0
2021-07-29T02:37:36.333
80451
2022-05-17T10:05:55.567
2021-07-29T02:44:45.410
3060
47203
question
python web-scraping selenium
"NameError: name 'url' is not defined" の解決方法を教えてください


エラーそのものはメッセージとして表示されている通り "`url` が定義されていない" のが原因なので、スクレイピング対象の URL
を事前に定義するだけだと思います。

[code]

    url  = "https://amazon.co.jp/XXX/XXX/" # <- 追加
    html = get_page_from_amazon(url)
    
[/code]

エラーメッセージが英語の場合、まずは翻訳してみることをお勧めします。

機械翻訳結果(例):

> NameError：名前 'url'が定義されていません

* * *

ただし、質問で参照しているページのコードは、別のサイトのコードを参照したうえで必要な部分のみ修正して掲載している様にも見えるので、スクレイピングそのものが正しく動くのかは分かりません。


CC BY-SA 4.0
2021-07-29T02:55:35.097
80452
2021-07-29T02:55:35.097
3060
80451
answer