【爬虫類】問題集-豆弁映画


【爬虫類】問題集-豆弁映画
文書ディレクトリ
  • 【爬虫類】問題集-豆弁映画
  • 問題1 pip install numpyコマンドライン入力時にOSError:[WinError 87]パラメータエラー
  • 問題2 WebDriverException:Message:unknown error:bad inspector message
  • 問題3文字列の同じ名前の変数値
  • を取得する方法
  • 問題4 chrome追加パラメータ
  • 本文章は豆弁映画の情報を這い出す過程で現れた問題のすべての内容について筆者のgithubを参照する.
    問題1 pip install numpyコマンドライン入力時にOSError:[WinError 87]パラメータエラーを報告
  • シーン
  • condaによる仮想環境の作成:conda create -n scrapy python=3
  • 問題
  • 爬虫コードを実行すると、OSError: [WinError 87] The parameter is incorrect
  • が表示されます.
  • 説明
  • python=3デフォルトインストール3.8、一部のpythonライブラリではpython 3がサポートされていません.8

  • ソリューション
  • conda create -n scrapy python=3.7


  • 質問2 WebDriverException:Message:unknown error:bad inspector message
  • シーン
  • python,seleniumで爬虫類を構築してウェブページ情報を取得し,xpathでページ内容解析
  • を行う.
  • url: https://movie.douban.com/subject/3878007/

  • 問題
  • webdriverはウェブサイトをロードできますが、ページの内容
  • に正しく戻ることはできません.

    WebDriverException: Message: unknown error: bad inspector message in 3 driver = webdriver.Chrome(options=chrome_options) 4 driver.get(url) ----> 5 html = driver.page_source UnicodeEncodeError: ‘utf-8’ codec can’t encode character ‘\ud83d’ in position 76660: surrogates not allowed html = HTML(url=self.url, html=content.encode(DEFAULT_ENCODING), default_encoding=DEFAULT_ENCODING)
  • 説明
  • 爬虫類は、爬取ページにemoji文字列が含まれている場合にhtml
  • に正しく戻ることができない.
  • driver.page_source符号化はutf-8を用いるが、その最大1文字は3バイトであり、emoji記憶には4バイトの
  • が必要である.
  • ソリューション
  • pageを返さないソース、直接find_を通過element_by_xpathは、コンテンツ
  • を取得する
  • requestsを使用してページコンテンツ
  • を取得する.

    問題3文字列の同じ名前の変数値を取得する方法
  • シーン
  • 爬虫類が該当情報を取得すると、変数値をDataFrame
  • に追加する.
  • 問題
  • 文字列の同じ名前の変数値
  • を取得する.
  • 説明
  • コンテンツを這い出す場合、取得すべき情報を文字列として反復可能なデータ構造に格納し、必要に応じて反復可能なデータ構造にループアクセスすれば
  • である.
  • ソリューション
  • pythonに組み込まれたeval()関数、例えばeval(‘egg’)はegg変数の値
  • を返す.

    問題4 chromeパラメータの追加
    from selenium.webdriver.chrome.options import Options from fake_useragent import UserAgent
    chrome_options = Options() ua = UserAgent() user_agent = {“user-agent”: ua.random}
    chrome_options.add_Argument(f’–user-agent={user_agent}’)#追加リクエストヘッダのユーザーエージェントchrome_options.add_Argument(’–disable-gpu’)#無効GPU chrome_options.add_Argument(’–headless’)#グラフィックインタフェースchrome_options.add_Argument(’–blink-settings=imagesEnabled=false’)#画像のchromeのロードを禁止するoptions.add_Argument(’–window-size=80090’)#画面解像度chrome_を設定options.add_experimental_option(‘excludeSwitches’,[‘enable-automation’)#ブラウザコントロールモード設定