該存儲庫包含代碼,以重現我們的故事中的“ Google的最佳搜索結果?驚喜!是Google”中的發現中的代碼,我們系列的Google The Giant。
我們的方法論在“我們如何分析Google的搜索結果”中描述。
我們分析中的數字和表可以在data文件夾中找到。
由於我們的完整數據集太大而無法放置在GitHub中,因此我們在data-subsample文件夾中提供了一個子集。
要使用完整的數據集,請參閱下載數據。
我們的新型空間網絡解析工具可以在utils/web_assay.py中找到。
用於數據預處理和分析的jupyter筆記本在notebooks文件夾中是避免使用的。
下面的“筆記本”部分概述了每個筆記本的說明。
確保您安裝了Python 3.6+,我們使用Minconda創建了Python 3.8虛擬環境。
然後安裝Python軟件包:
pip install -r requirements.txt
某些軟件包在以下各節中指出了其他依賴關係( geckodriver , xvfb , GLFW )。
硒用於在數據收集和預處理步驟中執行瀏覽器自動化。儘管我們在安裝Python要求(上)時下載Selenium,但您必須確保還下載需要Geckodriver的Firefox。詳細的安裝說明在Selenium的文檔中。
我們使用PyvirtualDisplay進行無頭瀏覽。儘管Python需求文件中介紹了這一點,但請雙檢查您的依賴項,例如已安裝的xvfb 。 PyvirtualDisplay的文檔中有詳細的說明。如果您不需要進行無頭瀏覽,那麼這不是必需的。
對於Debian:
sudo apt-get install xvfb xserver-xephyr vnc4server xfonts-base
我們使用圖形庫P5.js的本機Python端口來編程繪製形狀。 P5使用GLFW用於OpenGL圖形上的某些操作,根據操作系統的要求有所不同,請檢查P5文檔以確保您有必要的必要條件。
對於Mac OS:
brew install glfw
對於Debian:
sudo apt-get install libglfw3-dev libglfw3
此存儲庫中的最終數據集(n = 15k)的子集(n = 400)在data_subsample/ Directory中。該子集充分說明了我們的方法,並為完整數據集提供了可比的數字。
但是,如果要使用完整的數據集,則可以在這裡找到它:
# To reproduce the data preprocessing in its entirety start with the HTML files here:
https://markup-public-data.s3.amazonaws.com/google-search-audit/input_files.tar.xz
# To reproduce the analysis you just need the spatial metadata jsonl files parsed from the HTML files:
https://markup-public-data.s3.amazonaws.com/google-search-audit/intermediary_files.tar.xz
或者,如果您信任我們,則可以運行以下腳本:
sh data/download-full-dataset.sh
該腳本將下載兩個tar.xz文件,並在data/文件夾中解開包裝。
我們建議使用data_subsample/然後再進行此操作!
擁有完整的數據集後,您可以在notebooks/中的Jupyter筆記本電腦的開頭翻轉此開關。
use_full_dataset = True
下載硒後,請確保它可以正常工作!我們創建了測試,以確保這些驅動程序可以工作,並且您可以模仿移動設備。這在數據預處理步驟中必須進行,以獲取元素的位置和尺寸。
這是進行這些測試的方法。
將目錄更改為測試文件夾:
cd tests
然後有兩種測試 - 一個測試解析器的效果
python test_parsers.py
一個使用data/tests文件夾中的幾個示例測試完整的Web分析流。
python test_assay.py
如果您想重新編碼我們的結果,則應依次運行筆記本。
但是,如果您想快速概述該方法,則只需要使用Asterix(*)的筆記本電腦。
Web分析的實用演示是搜索結果的功能。這將介紹我們方法文學中解釋的基礎代碼。
這將在我們收集的HTML頁面的全部輸入數據集上運行Web測定流。
數據預處理。包括由解析器返回的標準化類別,使網頁的長度正常化,並在50個分位數中計算區域。
重現我們發現部分中發現的數字和表的主要分析筆記本。
一個思想實驗表明,如果我們考慮了對每個類別中包含的內容的不同解釋,我們對Google和非Google房地產的計算將如何改變。這是我們的限制部分。
顯示了不同搜索群中房地產的計算如何不同。根據唯一的“實體”或Google趨勢中的搜索主題將搜索分組在一起。這是我們的限制部分。
在進行了700個染色的搜索之後,我們能夠計算出分類準確性和房地產邊界精確度的錯誤率。我們通過考慮我們錯誤或分類的像素來進一步衡量技術缺陷的影響。這在我們的附錄中。
該文件夾包含用於我們的空間Web解析工具Web Assay的輔助功能和代碼。
utils/
├── config.py
├── draw_img.py
├── parsers.py
├── prodigy
│ ├── config
│ │ ├── prodigy.json
│ │ └── serp-help.html
│ └── search_audit.py
├── timeout.py
└── web_assay.py
基類和Google搜索Web分析在utils/web_assay.py中。
我們用來對Google搜索頁面元素進行分類的68個Web解析器在utils/parsers.py中。
您會發現有關它們在我們方法文學論文附錄中的工作方式的更多背景。
我們圍繞p5.js的包裝器在utils/draw_img.py中。
註釋工具的說明在utils/prodigy中。我們的錯誤註釋指南檢查染色屏幕截圖是在utils/prodigy/config/serp-help.html中。
該目錄是保存完整數據集中的中介機構和輸出的地方。
data/
├── assets
│ ├── stained-screenshot-examples
│ └── assay-flow.png
├── error_analysis
│ ├── adrianne-annotations.csv.gz
│ ├── adrianne-pixel-errors.csv
│ ├── leon-annotations.csv.gz
│ └── leon-pixel-errors.csv
├── output
│ ├── figures
│ └── tables
└── test
├── input_local_searches
├── intermediate_local_searches
└── parser_output
data/assets/stained-screenshot-examples包含使用Web分析染色的屏幕截圖的示例 - 我們的新型Web解析工具。 data/error_analysis包含來自兩個註釋者的點檢查數據。
data/output包含我們的表演文章中使用的表和數字。
data/test包含一些示例搜索結果的HTML,用於測試和演示筆記本notebooks/0-demo-web-assay.ipynb 。
如果您下載完整的數據集,則應將內容提取到data/中,以反映data_subsample/的組織。
data_subsample/包含RAW HTML( data_subsample/input/ )和中介機構,用於從15K樣本中隨機的400個搜索結果。
data_subsample/
├── input
│ └── google_search
└── intermediary
├── element_metadata.jsonl.gz
└── google_search
與整個數據集相比,這個較小的數據集使用存儲庫及時及時證明我們的方法論。
element_metadata.json1.gz是從Web測定中返回的預處理空間元素元數據。我們的大部分分析都使用此數據集,無論是從子集還是完整數據集中。
版權所有2020年,Markup News Inc.
如果滿足以下條件:
源代碼的再分配必須保留上述版權通知,此條件列表和以下免責聲明。
二進制形式的重新分配必須複製上述版權通知,此條件列表以及文檔和/或分發提供的其他材料中的以下免責聲明。
未經具體的事先書面許可,版權持有人的名稱和貢獻者的名稱都不能用於認可或推廣從該軟件中獲得的產品。
該軟件由版權所有者和貢獻者“按原樣”提供,任何明示或暗示的保證,包括但不限於對適銷性和特定目的適合性的隱含保證。在任何情況下,版權持有人或貢獻者均不得對任何直接,間接,偶然,特殊,特殊,示例性或結果損害均承擔任何責任(包括但不限於替代商品或服務的採購,損失,數據或利潤損失,數據或利潤;還是造成的,無論是在合同中造成的,或者在任何責任中造成的責任,或者是否有任何責任,或者在任何責任中,是否有任何責任,或者是否有任何責任,或者是否有責任,是否有責任,是否有責任。告知可能造成這種損害的可能性。