~ Một câu chuyện webscraping của Arya - A ProxyScrape người dùng
Để rõ ràng, tôi bắt buộc phải đưa ra tuyên bố từ chối trách nhiệm rằng tôi không phải là đại diện chính thức của ProxyScrape. Tuy nhiên, tôi là một fan hâm mộ lớn và khách hàng của dịch vụ của họ. Nếu bạn chưa sử dụng dịch vụ của họ, tôi thực sự khuyên bạn nên làm như vậy! Những ý kiến và suy nghĩ sau đây hoàn toàn là của riêng tôi.
"Ôi $!*^, không có cách nào"
Đó chính xác là cảm xúc mà tôi thấy mình lẩm bẩm lúc 3 giờ sáng, vật lộn với nhận ra rằng một công ty từng hợp thời trang như giao sữa, thứ mà hầu hết mọi người sẽ ký thác vào kỷ nguyên của nhạc disco và những bộ trang phục neon hoang dã đó, vẫn đang đá xung quanh như một kiểu tóc xấu của thập niên 80 - và thật không may, nó ở khắp mọi nơi.
Công ty này là thỏa thuận thực sự trong thời kỳ đỉnh cao của nó. Ý tôi là, bạn không thể thoát khỏi nó trong thời hoàng kim của nó. Bây giờ, tên của nó chỉ được lẩm bẩm với một chút hoài niệm trong các nhà hưu trí.
"Trang vàng."
You might be wondering, “Why does this matter? Why should anyone give a damn? Why is this not a 30s TikTok with a dude playing GTA 5 on the other half of it?” Well, one of the hottest uses for web scraping is lead discovery and generation. In our capitalist wonderland where everyone’s peddling some crazy sh*t, it just makes sense to scour the internet for the suckers who’ll “HODL” and “FOMO” into your crypto timeshare that’s shaped like “half a rhombus”. And hey, just to be clear, “it’s NOT a pyramid scheme… it’s just shaped like those famous pointy things in Egypt.”
So, here’s the kicker. One of the absolute gems for B2B lead generation, in my humble opinion, is none other than YellowPages (or Yell for you “chewsday” people). Why? Well, let me break it down:
"Bức tường xấu hổ": Những di tích chưa bắt kịp với thời đại internet vẫn còn treo lơ lửng ngoài kia. Công việc kinh doanh của ông bạn có lẽ đang lạnh lẽo ở đó, giống như SMMA mà bạn bắt đầu vì TikToks và thề sẽ rời đi trong vòng ba tháng, hiện đã trở thành bất tử trên các danh bạ kinh doanh của Google.
"Tôi không giống như những cô gái khác": Trong khi những người cạo mặt mới tin rằng Google Maps là chén thánh cho các đầu mối kinh doanh nhỏ, mọi người cạp hiểu biết đều biết rằng đó là một đống tào lao - nó đã bão hòa, mỗi đứa trẻ 14 tuổi lấy cảm hứng từ một người đàn ông hói đầu nào đó đã quấy rối những doanh nghiệp đó.
"Giống như lấy kẹo từ một đứa trẻ": Các trang web phái sinh của YellowPage và các trang web phái sinh của họ không có một chút bảo vệ. Tôi có thể cạo từng doanh nghiệp trong danh bạ của họ trong vòng vài giây. Chúng ta đang nói về HÀNG CHỤC TRIỆU khách hàng tiềm năng ở đây.
Chắc chắn, nó có thể không phải là từ thông dụng trong giới tiếp thị, nhưng đó là cơ hội. Khi những người khác theo đuổi các xu hướng mới nhất, một số ít hiểu biết nhận ra tiềm năng trong các góc bị lãng quên của internet. YellowPages có thể là một di tích từ quá khứ, nhưng trong thế giới của thế hệ khách hàng tiềm năng, đó là một di tích với tiềm năng chưa được khai thác và một lộ trình để thành công.
Bây giờ, bạn có thể hỏi, "Làm thế nào tôi sẽ tận dụng cơ hội như vậy?" - Hãy cùng nhau đi qua từng bước, và hy vọng, ngay cả một số bạn người Neanderthal cũng có thể cạo YellowPages vào cuối năm nay.
Chúng tôi sẽ tiếp cận điều này giống như bất kỳ trang web nào khác. Bước đầu tiên là tìm hiểu cách thức hoạt động của f * ck trang web. Điều này thường đòi hỏi bạn, vâng, bạn, phải tìm ra cách điều hướng đến nơi dữ liệu ngon ngọt đó đang ngồi. Không có $!*^... Làm thế nào để bạn mong đợi để trích xuất dữ liệu nếu bạn không thể tìm thấy nó pooky?!?
Shown Above: YellowPages Canada’s landing page, the unfortunate victim of this post.
Như bạn có thể thấy ở trên trên trang đích của họ, có hai đầu vào văn bản - một cho cụm từ tìm kiếm của bạn và một cho vị trí. Hãy điền vào những điều này và thực hiện tìm kiếm; Tôi sẽ tìm kiếm "Nha sĩ" ở "Toronto, Ontario".
Shown Above: YellowPages Canada’s listing results page.
Khi bạn tìm ra ABC của mình và điền chúng vào và quản lý để xác định vị trí nút tìm kiếm VÀ nhấp vào nó (tôi rất ấn tượng), bạn sẽ được chuyển hướng đến một trang như trang trên có đường dẫn như sau:
/search/si/1/Dentists/Toronto+ON
Chúng ta có thể suy ra cấu trúc đường dẫn sau (điều này sẽ có ích sau):
/search/si/[Số trang]/[cụm từ tìm kiếm]/[địa phương]+[mã vùng]
Một điều khác cần lưu ý, chúng tôi đã định vị dữ liệu chúng tôi muốn, danh sách doanh nghiệp - hãy tìm hiểu xem các danh sách doanh nghiệp này đang được tải từ đâu, nó sẽ được gửi trong tài liệu HOẶC được tìm nạp từ điểm cuối API (hoặc nếu bạn khó chịu và tin tôi đi, tôi đã thấy nó - websockets).
Hiển thị ở trên: Các yêu cầu tìm nạp / XHR bắt nguồn từ trang. (Spoiler: dữ liệu không có trong bất kỳ dữ liệu nào trong số đó.)
Hiển thị ở trên: Danh sách doanh nghiệp trong tài liệu. (OMGEEE Dữ liệu trên thực tế nằm trong tài liệu.)
As we sifted through the API requests, looking for the data, it was proven futile. We then turned our attention to the HTML. Now, here’s a little nugget of insight for you – after “navigating the digital landscape for over a decade”, I knew instinctively that the data was within the document, thanks to the pages’ snappy responsiveness.
Hãy là sự thật, mặc dù. Với vị thế của YellowPages như một công ty danh bạ điện thoại đang tuyệt vọng tìm kiếm sự liên quan và quan trọng hơn là doanh thu, không có khả năng họ đang phô trương các ngăn xếp công nghệ tiên tiến. Cơ hội để họ thuê các nhà phát triển phô trương flannels và có năm mươi ứng dụng việc cần làm dựa trên React trong sơ yếu lý lịch của họ là rất mong manh. Vì vậy, chúng tôi có thực sự bị sốc khi trang web là tĩnh?
Tuy nhiên, các danh sách trong trang được chứa trong một div, có thể trích xuất bằng cách sử dụng bộ chọn "div.resultList". Mỗi danh sách riêng lẻ, được lồng nhau thuận tiện trong phần tử nói trên, có thể được trích xuất bằng bộ chọn div[itemtype="http://schema.org/LocalBusiness]
Tôi sẽ để bạn tìm ra cách trích xuất riêng lẻ dữ liệu vượt quá mức độ chi tiết này; Nếu không, chúng tôi sẽ ở đây mãi mãi. Sử dụng thuộc tính "itemprop" — nó sẽ giúp bạn dễ dàng hơn đáng kể quy trình.
Now, to automate extraction: You should paginate through the results using the URL (recall the path structure we discussed earlier), extracting elements and data from each page until you hit an empty page. I personally opted to use Rust for this project as it’s fast and provides easy parallelization (which will be important in a second), leveraging the “reqwest” and “select” crates to handle the heavy lifting. And here’s a few pro tips: remember to rotate your user agent, set your referrer correctly, use a proxy, and PLEASE don’t DDOS them.
Hiển thị ở trên: Trang kết quả trống của YellowPages.
Your script should be good to go now. But how can we elevate this even further? Let’s put our singular combined brain cell to work and ponder… “Do we need to sequentially request each page?” Absolutely not. YellowPages makes it remarkably easy for us to parallelize this process by providing the number of pages available for the query – hint, hint, wink, wink.
Hiển thị ở trên: Số trang của YellowPages ở cuối trang kết quả.
Tuy nhiên, có một cảnh báo cho chiến lược song song này: Mặc dù YellowPages có thể đề xuất hơn 60 trang kết quả tồn tại, nhưng cố gắng truy cập bất kỳ trang nào vượt quá 60 trên kết quả sẽ không hiển thị. Do đó, hãy đặt giới hạn cứng cho song song của bạn ở mức 60. Giả sử đủ băng thông và sức mạnh tính toán - mọi trang kết quả nên được cạo trong cùng một thời gian bạn sẽ cần cạo một trang trong mô hình tuần tự.
Hiển thị ở trên: Ví dụ về dữ liệu danh sách của YellowPages được trích xuất.
Bây giờ, bạn có thể tự hỏi, đây có phải là clickbait không? "Triệu phú" có liên quan gì đến tất cả những điều này? Chà, nếu bạn đã theo dõi và bây giờ sở hữu một tập lệnh chức năng, tôi có thể hoặc không thể chứng thực cá nhân rằng không có gì ngăn cản bạn lặp lại về mặt lý thuyết qua mọi thành phố ở Canada và lấy mọi danh sách doanh nghiệp từ một truy vấn trong thành phố nói trên từ YellowPages. Dữ liệu này theo nghĩa đen có thể giữ giá trị hàng triệu đô la nếu được tăng cường đúng cách, nhưng nó cũng có nghĩa đen là hàng triệu doanh nghiệp trong thư mục của họ hiện đang nằm trong tầm tay của bạn.
YellowPages có thể gợi lên những ký ức về một thời đại đã qua, tiềm năng của nó đối với việc tạo ra khách hàng tiềm năng B2B vẫn là một kho báu ẩn giấu trong bối cảnh kỹ thuật số. Bằng cách điều hướng những điều kỳ quặc của giao diện web tĩnh của nó, việc thu thập dữ liệu từ nền tảng dường như lỗi thời này sẽ tiết lộ một loạt các đầu mối kinh doanh. Bản chất bị bỏ qua và không được sử dụng đúng mức của YellowPages làm cho nó trở thành một cơ hội duy nhất.
Mục tiêu duy nhất của tôi là bài đăng trên blog này sẽ không khiến bạn nghĩ rằng "kho báu thực sự là những người bạn mà chúng tôi đã kết bạn trên đường đi" - Tôi hy vọng điều này vừa chứng minh những cơ hội độc đáo tồn tại, đặc biệt là với bộ kỹ năng mà rất nhiều người trong chúng ta coi là điều hiển nhiên và cũng hy vọng, phục vụ như một cuốn sách thú vị cho những bạn có kinh nghiệm trong lĩnh vực này, và đưa ra cái nhìn sâu sắc cho những người trong số các bạn không phải.
Như mọi khi, hãy giữ an toàn, sử dụng sự bảo vệ và vì tình yêu của Chúa ... đừng làm điều gì đó mà FBI sẽ ở trên mông của bạn - tốt. trong trường hợp này sẽ là RCMP.
Hình trên: Tương đương FBI Canada - RCMP.