Cách thu thập dữ liệu từ Google bằng Python

Cách thực hiện , Python , Scraping ,15-11-20225 phút đọc

Google là công cụ tìm kiếm lớn nhất trong số tất cả các công cụ tìm kiếm khi nói đến việc tìm kiếm thông tin trên Internet. Theo ước tính, hơn 3,5 tỷ lượt tìm kiếm được thực hiện trên Google Tìm kiếm mỗi ngày. Chúng tôi (người dùng Google) chỉ được cung cấp một lượng thông tin nhất định dựa trên Google Analytics và Google Ads. Google sử dụng API của mình

Mục lục

Google là công cụ tìm kiếm lớn nhất trong số tất cả các công cụ tìm kiếm khi nói đến việc tìm kiếm thông tin trên Internet. Theo ước tính, hơn 3,5 tỷ lượt tìm kiếm được thực hiện trên Google Tìm kiếm mỗi ngày. Chúng tôi (người dùng Google) chỉ được cung cấp một lượng thông tin nhất định dựa trên Google Analytics và Google Ads. Google sử dụng API (Giao diện lập trình ứng dụng) của mình và về cơ bản chọn thông tin có giá trị nhất đối với chúng tôi dựa trên nghiên cứu và xếp hạng của mình. Nhưng nếu chúng ta muốn đào sâu hơn một chút để biết thông tin nào thực sự có giá trị đối với bạn thì sao? 

Đây là lúc cần phải thu thập dữ liệu. Bạn có thể nghĩ đến Google Scraper như một cách để làm nổi bật các chương quan trọng nhất của một cuốn sách. Khi bạn quét một cuốn sách giáo khoa để tìm thông tin, bạn có xu hướng chọn ra văn bản có giá trị nhất cho nghiên cứu hoặc bài kiểm tra của mình. Nhưng World Wide Web lớn hơn một cuốn sách 1000 trang. Vì vậy, trong trường hợp của Internet, Google Scraper có thể là đôi mắt tập trung của bạn, ngay lập tức nắm bắt và thu thập các kết quả hàng đầu về chủ đề mà bạn thắc mắc. Bạn có thể trích xuất kết quả tìm kiếm của Google dựa trên các từ khóa cụ thể. Ví dụ: nếu bạn thu thập dữ liệu trên Google bằng từ khóa "lions", Google Web Scraper sẽ cung cấp cho bạn một số lượng URL được xếp hạng cao nhất dựa trên từ khóa đó. Bạn sử dụng càng nhiều từ khóa, Google sẽ cung cấp cho bạn nhiều URL và dữ liệu cụ thể hơn. Dữ liệu càng cụ thể thì dữ liệu đó càng phù hợp với yêu cầu của bạn. Nhưng trước tiên, hãy cùng tìm hiểu nhu cầu thu thập dữ liệu trên Google.

Tại sao bạn cần phải thu thập dữ liệu từ Google?

Bạn biết rằng Google là điểm vào chính của Internet đối với hàng tỷ người và hầu như mọi doanh nghiệp đều muốn xuất hiện trong kết quả Tìm kiếm của Google. Xếp hạng và đánh giá của Google có tác động lớn đến hồ sơ trực tuyến của các doanh nghiệp địa phương. Các công ty tiếp thị có nhiều khách hàng từ các ngành khác nhau phụ thuộc rất nhiều vào việc có được các công cụ SEO (Tối ưu hóa công cụ tìm kiếm) đáng tin cậy. Chúng là phương tiện để thực hiện nhiều nhiệm vụ một cách hiệu quả và là phương tiện để quản lý và phân tích kết quả thành công. 

Sau đây là một số trường hợp sử dụng dữ liệu từ Google.

  • Bạn có thể phân tích quảng cáo cho một nhóm từ khóa nhất định.
  • Bạn có thể theo dõi đối thủ cạnh tranh của mình ở cả kết quả tự nhiên và trả phí.
  • Bạn có thể xây dựng danh sách URL cho các từ khóa cụ thể. 

Các doanh nghiệp cần thu thập thông tin từ Google vì những lý do sau.

  • Tối ưu hóa công cụ tìm kiếm (SEO) – Thu thập dữ liệu từ Google cho công ty biết trang web của họ xuất hiện ở vị trí nào trên trang kết quả của Google và cung cấp cái nhìn thoáng qua về số lượng từ khóa mà trang web của họ sử dụng trên bất kỳ trang nào. Trang web sử dụng càng nhiều từ khóa thì trang cụ thể đó xuất hiện càng cao trên trang kết quả. Vì vậy, hiểu cách sử dụng SEO giúp doanh nghiệp của bạn có tính cạnh tranh cao.
  • Tiếp thị – Chúng ta càng thấy nhiều logo Amazon trên màn hình, chúng ta càng có khả năng tìm đến Amazon khi cần mua hàng. Google scraping giúp thu thập dữ liệu về cách đối thủ cạnh tranh của bạn quảng cáo sản phẩm của họ, sản phẩm nào họ chọn để quảng cáo và cách khách hàng phản hồi về những sản phẩm đó. 
  • Chiến thuật bán hàng cạnh tranh – Google scraping giúp công ty bạn tạo ra nhiều chiến thuật bán hàng cạnh tranh hơn. Nếu công ty bạn xếp hạng thấp trên một trang kết quả cụ thể, điều này có thể cung cấp thông tin chi tiết về lý do tại sao một sản phẩm cụ thể của công ty bạn không thành công. Scraping giúp bạn có lợi thế hơn đối thủ cạnh tranh và cung cấp những cách mới để cạnh tranh trong thế giới này. 

Quét Google bằng Python

Hãy cùng xem chúng ta có thể thu thập dữ liệu từ Google bằng python như thế nào.

Cài đặt

Đầu tiên, bạn cần cài đặt fake-useragent . Nó sẽ lấy useragent mới nhất với cơ sở dữ liệu thực tế.

pip cài đặt fake-useragent

Nhập thư viện

Bạn phải nhập tất cả các thư viện cần thiết như được hiển thị bên dưới.

nhập pandas dưới dạng pd nhập numpy dưới dạng np nhập urllib từ fake_useragent nhập UserAgent nhập yêu cầu nhập re từ urllib.request nhập Request, urlopen từ bs4 nhập BeautifulSoup

Sử dụng một từ khóa

Bạn phải xây dựng URL Google bằng cách sử dụng từ khóa của bạn và số lượng kết quả. Để thực hiện việc này, chúng ta sẽ làm theo hai bước:

Mã hóa từ khóa thành HTML bằng urllibThêm id vào URL

Chúng tôi cho rằng từ khóa của chúng tôi là “máy học python”.

từ khóa= "học máy python" html_keyword= urllib .parse .quote_plus (từ khóa) in (html_keyword)

Khi in ra từ khóa, chúng ta sẽ nhận được kết quả sau.

Xây dựng URL Google

Sau khi mã hóa từ khóa thành HTML bằng urllib, chúng ta phải xây dựng URL Google như hiển thị bên dưới.

số_kết_quả = 15 google_url = "https://www.google.com/search?q=" + html_keyword + "&num=" + str ( số_kết_quả ) in ( google_url )

Chúng ta nhận được URL sau:

Nhận kết quả

Bây giờ, chúng ta phải nhấn vào URL và lấy kết quả. Để đạt được điều này, Beautiful SoupFake Useragent sẽ giúp chúng ta thực hiện.

ua = UserAgent()
response = requests.get(google_url, {"User-Agent": ua.random})
soup = BeautifulSoup(response.text, "html.parser")

Chúng ta chỉ cần biểu thức chính quy để trích xuất thông tin chúng ta muốn.

result = soup.find_all('div', attrs = {'class': 'ZINbbc'})
results=[re.search('\/url\?q\=(.*)\&sa',str(i.find('a', href = True)['href'])) for i in result if "url" in str(i)]
#this is because in rare cases we can't get the urls
links=[i.group(1) for i in results if i != None]
links

Đây là những gì chúng ta nhận được.

Đây là cách bạn có thể thu thập dữ liệu từ Google bằng Python. 

Chúng ta cũng có thể tóm tắt đoạn mã trên thành một hàm scraper duy nhất, như được hiển thị bên dưới.

def google_results(keyword, n_results):
    query = keyword
    query = urllib.parse.quote_plus(query) # Format into URL encoding
    number_result = n_results
    ua = UserAgent()
    google_url = "https://www.google.com/search?q=" + query + "&num=" + str(number_result)
    response = requests.get(google_url, {"User-Agent": ua.random})
    soup = BeautifulSoup(response.text, "html.parser")
    result = soup.find_all('div', attrs = {'class': 'ZINbbc'})
    results=[re.search('\/url\?q\=(.*)\&sa',str(i.find('a', href = True)['href'])) for i in result if "url" in str(i)]
    links=[i.group(1) for i in results if i != None]
    return (links)

Ở đây google_results là hàm thu thập dữ liệu trong đó chúng ta truyền từ khóa và số lượng kết quả dưới dạng tham số và xây dựng URL Google.

google_results ( 'học máy trong python' , 10 )

Đây là những gì chúng ta nhận được.

Sử dụng Proxy

Nếu bạn muốn kết nối với Google Ads API thì sao? Bạn có thể thực hiện việc này thông qua proxy bằng cách thiết lập cấu hình http_proxy trong tệp google-ads.yaml của bạn như hiển thị bên dưới.

http_proxy: CHÈN_PROXY_TẠI ĐÂY

Bạn có thể chỉ định http://user:pass@localhost:8082 làm proxy. Bạn cũng có thể cấu hình cài đặt proxy theo chương trình với sự trợ giúp của các phương thức GoogleAdsClient như sau:

  • tải_từ_dict
  • tải_từ_môi_trường
  • tải_từ_chuỗi

Ví dụ, 

config = {
  ...
  "http_proxy": "INSERT_PROXY_HERE",
}
googleads_client = GoogleAdsClient.load_from_dict(config)

Bạn phải thiết lập biến môi trường GOOGLE_ADS_HTTP_PROXY để sử dụng proxy từ phương thức load_from_env.

Tại sao nên sử dụng Google Proxy?

Sau đây là những lý do nên sử dụng proxy của Google.

  • Nhận kết quả nhanh và duy nhất – Tất cả các công cụ tìm kiếm, bao gồm cả Google, đều không thích sử dụng phần mềm tự động để trích xuất kết quả. Khi họ tìm thấy một số truy vấn tìm kiếm đến từ một địa chỉ IP, họ sẽ chặn địa chỉ IP đó và ngăn không cho nó truy cập vào bất kỳ dữ liệu nào. Vì vậy, với một loạt các proxy riêng tư chuyên dụng và duy nhất, bạn không chỉ có thể sử dụng phần mềm tự động để trích xuất kết quả tìm kiếm của Google mà còn có thể lấy dữ liệu cực kỳ nhanh.
  • Giữ quyền riêng tư - Proxy của Google đảm bảo rằng địa chỉ IP gốc của bạn sẽ an toàn và bảo mật và sẽ không dễ bị tấn công. Chúng cũng sẽ đảm bảo rằng thông tin nhạy cảm trong máy tính của bạn có thể được lưu giữ ở một vị trí an toàn.
  • Tự động hóa – Phần mềm tự động hóa hoạt động chính xác khi sử dụng proxy chất lượng tốt và bạn không cần phải mua bất kỳ thứ gì khác khi sử dụng proxy chuyên dụng và phần mềm tự động hóa.

Phần kết luận

Bạn có thể thu thập dữ liệu từ Google bằng Python để:

  • Phân tích đối thủ cạnh tranh
  • Xây dựng liên kết
  • Làm nổi bật sự hiện diện xã hội
  • Tìm kiếm từ khóa

Khi thu thập dữ liệu từ Google, proxy là cần thiết vì chúng có thể giúp các công ty tăng thứ hạng trên các công cụ tìm kiếm và ngăn chặn IP Internet của họ bị chặn. Bạn có thể sử dụng toàn bộ một loạt proxy chuyên dụng để thu thập dữ liệu từ Google và chúng giúp bạn lấy dữ liệu cực kỳ nhanh.

Hy vọng bạn đã hiểu cách thu thập dữ liệu từ Google bằng Python.