Googlescraper adalah alat open source dan akan tetap menjadi alat open source di masa depan.
Juga penerus modern googlescraper, infrastruktur merangkak tujuan umum, akan tetap open source dan gratis.
Namun beberapa orang ingin dengan cepat memiliki layanan yang memungkinkan mereka mengikis beberapa data dari Google atau mesin pencari lainnya. Untuk alasan ini, saya membuat layanan web scrapeulous.com.
Negara Bagian Terakhir: Februari 2019
Penerus googlescraper dapat ditemukan di sini
Ini berarti bahwa saya tidak akan mempertahankan proyek ini lagi. Semua pengembangan baru masuk dalam proyek di atas.
Ada beberapa alasan mengapa saya tidak akan terus berupaya keras dalam proyek ini.
Untuk alasan ini saya akan terus mengembangkan perpustakaan pengikis bernama https://www.npmjs.com/package/se-scraper di Javascript yang berjalan di atas dalang.
Anda dapat mengunduh aplikasi di sini: https://www.npmjs.com/package/se-scraper
Ini mendukung berbagai mesin pencari yang berbeda dan jauh lebih efisien daripada googlescraper. Basis kode juga jauh lebih kompleks tanpa kemampuan pencatatan threading/antrian dan kompleks.
Untuk pertanyaan Anda dapat menghubungi saya di wegpage saya dan menulis email kepada saya di sana.
Proyek ini kembali untuk hidup setelah dua tahun ditinggalkan. Dalam beberapa minggu mendatang, saya akan meluangkan waktu untuk memperbarui semua fungsionalitas untuk perkembangan terbaru. Ini mencakup memperbarui semua regex dan perubahan dalam perilaku mesin pencari. Setelah beberapa minggu, Anda dapat mengharapkan proyek ini berfungsi lagi seperti yang didokumentasikan di sini.
Googlescraper ditulis dalam Python 3. Anda harus menginstal setidaknya Python 3.6. Pengembangan besar terakhir semuanya dilakukan dengan Python 3.7. Jadi saat menggunakan Ubuntu 16.04 dan Python 3.7 misalnya, silakan instal Python 3 dari paket resmi. Saya menggunakan distribusi Anaconda Python, yang bekerja dengan sangat baik untuk saya.
Selain itu, Anda perlu menginstal browser chrome dan juga chromedriver untuk mode selenium. Atau pasang browser Firefox dan tokek untuk mode selenium. Lihat instruksi di bawah ini.
Anda juga dapat menginstal googlescraper dengan nyaman dengan pip:
virtualenv --python python3 env
source env/bin/activate
pip install GoogleScraper
Saat ini (September 2018) ini berkecil hati. Harap instal dari sumber github terbaru.
Terkadang hal -hal terbaru dan paling luar biasa tidak tersedia di cheeseshop (begitulah cara mereka menyebut https://pypi.python.org/pypi/pip). Oleh karena itu Anda mungkin ingin menginstal googlescraper dari sumber terbaru yang berada di repositori GitHub ini. Anda bisa melakukannya seperti ini:
virtualenv --python python3 env
source env/bin/activate
pip install git+git://github.com/NikolaiT/GoogleScraper/
Harap dicatat bahwa beberapa fitur dan contoh mungkin tidak berfungsi seperti yang diharapkan. Saya juga tidak menjamin bahwa aplikasi tersebut bahkan berjalan. Saya hanya menjamin (setidaknya sampai tingkat tertentu) bahwa pemasangan dari PIP akan menghasilkan versi yang dapat digunakan.
Unduh ChromedRiver terbaru dari sini: https://sites.google.com/a/chromium.org/chromedriver/downloads
Buka ritsleting driver dan simpan di suatu tempat dan kemudian perbarui chromedriver_path di file konfigurasi googlescraper scrape_config.py ke jalur di mana Anda menyimpan driver chromedriver_path = 'Drivers/chromedriver'
Unduh Geckodriver terbaru dari sini: https://github.com/mozilla/geckodriver/releases
Buka ritsleting driver dan simpan di suatu tempat dan kemudian perbarui geckodriver_path di file konfigurasi googlescraper scrape_config.py ke jalur di mana Anda menyimpan driver geckodriver_path = 'Drivers/geckodriver'
Perbarui pengaturan berikut di file konfigurasi googlescraper scrape_config.py ke nilai Anda.
# chrome driver executable path
# get chrome drivers here: https://chromedriver.storage.googleapis.com/index.html?path=2.41/
chromedriver_path = 'Drivers/chromedriver'
# geckodriver executable path
# get gecko drivers here: https://github.com/mozilla/geckodriver/releases
geckodriver_path = 'Drivers/geckodriver'
# path to firefox binary
firefox_binary_path = '/home/nikolai/firefox/firefox'
# path to chromium browser binary
chrome_binary_path = '/usr/bin/chromium-browser'
Instal seperti dijelaskan di atas. Pastikan Anda memiliki driver selenium untuk chrome/firefox jika Anda ingin menggunakan googlescraper dalam mode selenium.
Lihat semua opsi
GoogleScraper -h
Mengikis kata kunci tunggal "apel" dengan mode http:
GoogleScraper -m http --keyword "apple" -v info
Mengikis semua kata kunci yang ada dalam file SearchData/5words dalam mode selenium menggunakan chrome dalam mode headless:
GoogleScraper -m selenium --sel-browser chrome --browser-mode headless --keyword-file SearchData/5words -v info
Mengikis semua kata kunci yang ada
GoogleScraper -m http --keyword-file SearchData/some_words.txt --num-workers 5 --search-engines "bing,yahoo" --output-filename threaded-results.json -v debug
Lakukan pencarian gambar untuk kata kunci "K2 Mountain" di Google:
GoogleScraper -s "google" -q "K2 mountain" -t image -v info
Ini mungkin fitur paling luar biasa dari Googlescraper. Anda dapat mengikis dengan ribuan permintaan per detik jika keduanya
Contoh untuk mode asinkron:
Cari kata kunci dalam file kata kunci pencarian dan model pemasaran brands.txt di Bing dan Yahoo. Secara default mode asinkron memunculkan 100 permintaan secara bersamaan. Ini berarti sekitar 100 permintaan per detik (tergantung pada koneksi yang sebenarnya ...).
GoogleScraper -s "bing,yahoo" --keyword-file SearchData/marketing-models-brands.txt -m http-async -v info -o marketing.json
Hasilnya (hasil parsial, karena ada terlalu banyak kata kunci untuk satu alamat IP) dapat diperiksa dalam file output/marketing.json.
Googlescraper sangat kompleks. Karena GooglesCraper mendukung banyak mesin pencari dan HTML dan JavaScript dari penyedia pencarian sering berubah, sering kali merupakan kasus bahwa GooglesCraper berhenti berfungsi untuk beberapa mesin pencari. Untuk melihat ini, Anda dapat menjalankan tes fungsional .
Misalnya tes di bawah ini menjalankan sesi pengikis untuk Google dan Bing dan menguji bahwa data yang dikumpulkan terlihat kurang lebih baik.
python -m pytest Tests/functional_tests.py::GoogleScraperMinimalFunctionalTestCase
Googlescraper mem -parsing hasil mesin pencari google (dan banyak mesin pencari lainnya _ ) dengan mudah dan dengan cepat. Ini memungkinkan Anda untuk mengekstrak semua tautan yang ditemukan dan judul serta deskripsi mereka secara terprogram yang memungkinkan Anda untuk memproses data yang dikikis lebih lanjut.
Ada skenario penggunaan tanpa batas:
Pertama -tama Anda perlu memahami bahwa GooglesCraper menggunakan dua pendekatan pengikis yang sama sekali berbeda :
urllib.request atau requests modul. Ini mensimulasikan paket HTTP yang dikirim oleh browser nyata.Sedangkan pendekatan sebelumnya diimplementasikan terlebih dahulu, pendekatan kemudian terlihat jauh lebih menjanjikan dibandingkan, karena mesin pencari tidak memiliki cara mudah mendeteksinya.
Googlescraper diimplementasikan dengan teknik/perangkat lunak berikut:
Saat ini mesin pencari berikut didukung:
Mengikis adalah subjek yang kritis dan sangat kompleks. Google dan raksasa mesin pencari lainnya memiliki kecenderungan yang kuat untuk membuat pencakar hidup sekeras mungkin. Ada beberapa cara bagi penyedia mesin pencari untuk mendeteksi bahwa robot menggunakan mesin pencari mereka:
Jadi rintangan terbesar untuk ditangani adalah algoritma deteksi JavaScript. Saya tidak tahu apa yang dilakukan Google dalam javascript mereka, tetapi saya akan segera menyelidikinya lebih lanjut dan kemudian memutuskan apakah tidak lebih baik untuk mengubah strategi dan beralih ke pendekatan yang menggores dengan mensimulasikan browser di lingkungan seperti browser yang dapat mengeksekusi JavaScript. Jaringan masing -masing browser virtual ini diproksifikasi dan dimanipulasi sehingga berperilaku seperti agen pengguna fisik yang nyata. Saya cukup yakin bahwa harus dimungkinkan untuk menangani 20 sesi browser seperti itu secara paralel tanpa terlalu menekankan sumber daya. Masalah sebenarnya adalah seperti biasa kurangnya proxy yang baik ...
Seperti disebutkan di atas, ada beberapa kelemahan saat mengikis dengan urllib.request Permintaan atau requests modul dan melakukan jaringan sendiri:
Browser adalah sistem perangkat lunak yang sangat kompleks. Chrome memiliki sekitar 8 juta baris kode dan Firefox bahkan 10 loc. Perusahaan besar menginvestasikan banyak uang untuk mendorong teknologi ke depan (HTML5, CSS3, standar baru) dan setiap browser memiliki perilaku yang unik. Oleh karena itu hampir tidak mungkin untuk mensimulasikan browser semacam itu secara manual dengan permintaan HTTP. Ini berarti Google memiliki banyak cara untuk mendeteksi anomali dan ketidakkonsistenan dalam penggunaan penelusuran. Sendiri sifat dinamis dari JavaScript membuat tidak mungkin untuk mengikis tanpa terdeteksi.
Ini menangis untuk pendekatan alternatif, yang mengotomatiskan browser nyata dengan python. Yang terbaik adalah mengontrol browser Chrome karena Google memiliki insentif paling sedikit untuk membatasi kemampuan untuk browser asli mereka sendiri. Oleh karena itu saya perlu cara untuk mengotomatiskan Chrome dengan Python dan mengendalikan beberapa contoh independen dengan proxy yang berbeda. Kemudian output hasil tumbuh secara linear dengan jumlah proxy yang digunakan ...
Beberapa teknologi/perangkat lunak yang menarik untuk melakukannya:
Mungkin cara terbaik untuk menggunakan googlescraper adalah dengan menggunakannya dari baris perintah dan menembakkan perintah seperti berikut:
GoogleScraper --keyword-file /tmp/keywords --search-engine bing --num-pages-for-keyword 3 --scrape-method selenium
Di sini sel menandai mode pengikis sebagai 'selenium'. Ini berarti goresan googlescraper.py dengan browser sungguhan. Ini cukup kuat, karena Anda dapat mengikis lama dan banyak situs (Google mengalami kesulitan memblokir browser sungguhan). Argumen bendera --keyword-file harus menjadi file dengan kata kunci yang dipisahkan oleh newline. Jadi: untuk setiap permintaan Google satu baris. Mudah, bukan?
Selain itu, opsi --num-pages-for-keyword berarti bahwa googlescraper akan mengambil 3 halaman berturut-turut untuk setiap kata kunci.
Contoh Kata Kunci File:
keyword number one
how to become a good rapper
inurl:"index.php?sl=43"
filetype:.cfg
allintext:"You have a Mysql Error in your"
intitle:"admin config"
Best brothels in atlanta
Setelah pengikisan, Anda secara otomatis memiliki database SQLITE3 baru di google_scraper.db bernama di direktori yang sama. Anda dapat membuka dan memeriksa database dengan perintah:
GoogleScraper --shell
Seharusnya tidak menjadi masalah untuk mengikis 10'000 kata kunci dalam 2 jam . Jika Anda benar -benar gila, atur browser maksimal di konfigurasi sedikit lebih tinggi (di bagian atas file skrip).
Jika Anda mau, Anda dapat menentukan --proxy-file . Sebagai argumen, Anda perlu meneruskan file dengan proxy di dalamnya dan dengan format berikut:
protocol proxyhost:proxyport username:password
(...)
Contoh:
socks5 127.0.0.1:1080 blabla:12345
socks4 77.66.55.44:9999 elite:js@fkVA3(Va3)
Jika Anda ingin menggunakan googlescraper.py dalam mode http (yang berarti header http mentah dikirim), gunakan sebagai berikut:
GoogleScraper -m http -p 1 -n 25 -q "white light"
Jika Anda ingin menghubungi saya, lakukanlah dan kirimi saya surat. Anda dapat menemukan informasi kontak saya di blog saya.