Bài viết này sẽ đưa bạn vào một chuyến đi giải thích làm thế nào để làm web scraping cho các bài đăng công việc. Vì vậy, bạn đang ở trong thị trường việc làm và cố gắng tìm ra công việc tốt nhất. Nhưng bạn muốn chơi thông minh hơn và không chăm chỉ hơn. Tại sao không xây dựng một web scraper để thu thập và phân tích các bài đăng công việc cho bạn. Khi bạn đặt nó, nó sẽ cung cấp cho bạn dữ liệu phong phú ở định dạng gọn gàng đẹp mắt, vì vậy bạn không phải kiểm tra thủ công nhiều lần. Hãy bắt đầu nào.
Web scraping cho các bài đăng công việc là giải pháp tự động thu thập dữ liệu từ nhiều cổng thông tin việc làm và giảm thời gian của bạn trong việc tìm nạp dữ liệu từ mỗi trang web. Có một công cụ như vậy có thể cung cấp cho bạn một cơ sở dữ liệu đầy đủ về các cơ hội việc làm sẽ đơn giản hóa nhiệm vụ của bạn bằng nhiều lần. Tất cả những gì bạn phải làm là lọc cái nào phù hợp với bạn và tiến hành quá trình đăng ký.
Vì vậy, bạn đang ở trong thị trường việc làm và cố gắng tìm ra công việc tốt nhất. Nhưng bạn muốn chơi thông minh hơn và không chăm chỉ hơn. Tại sao không xây dựng một web scraper để thu thập và phân tích các bài đăng công việc cho bạn? Khi bạn đặt nó, nó sẽ cung cấp cho bạn dữ liệu phong phú ở định dạng gọn gàng đẹp mắt, vì vậy bạn không phải kiểm tra thủ công nhiều lần. Hãy bắt đầu nào.
[Tuyên bố từ chối trách nhiệm! Nhiều trang web có thể hạn chế việc loại bỏ dữ liệu khỏi các trang của họ. Người dùng có thể phải chịu các vấn đề pháp lý tùy thuộc vào vị trí và cách họ cố gắng trích xuất thông tin. Vì vậy, người ta cần phải cực kỳ cẩn thận nếu nhìn vào các trang web chứa dữ liệu của họ. Ví dụ: Facebook, Linked In và Craiglist đôi khi quan tâm nếu dữ liệu bị loại bỏ khỏi các trang của họ. Vì vậy, nếu bạn muốn cạo, cạo có nguy cơ của riêng bạn].
Đây sẽ là một bài viết rất cơ bản, trong đó chúng ta sẽ thấy những điều cơ bản về quét web bằng cách trích xuất một số thông tin hữu ích liên quan đến các công việc liên quan đến "Khoa học dữ liệu" từ indeed.com. Chúng tôi sẽ viết một chương trình tuyệt vời cập nhật công việc nhiều lần theo cách thủ công. Một số thư viện hữu ích sẽ rất tiện dụng trong khi xây dựng trình cạp này là "yêu cầu" và "BeautifulSoup".
Cách URL được cấu trúc rất quan trọng:
Cấu trúc URL này sẽ giúp ích rất nhiều khi chúng tôi tiếp tục xây dựng trình quét và thu thập dữ liệu từ nhiều trang.
Chrome có thể kiểm tra cấu trúc HTML của trang bằng cách nhấp chuột phải vào trang và sử dụng tùy chọn kiểm tra phần tử. Một menu sẽ xuất hiện ở bên phải và nó cũng sẽ hiển thị các thẻ phần tử lồng nhau và khi bạn đặt con trỏ lên các phần tử đó, nó sẽ làm nổi bật phần đó của màn hình.
Đối với bài viết này, tôi cho rằng bạn biết những điều cơ bản về HTML như thẻ, div, v.v., nhưng may mắn là bạn không cần biết mọi thứ. Bạn chỉ cần hiểu cấu trúc trang và hệ thống phân cấp thành phần khác nhau.
Bây giờ chúng tôi đã phân tích cấu trúc trang. Điều này sẽ giúp chúng ta xây dựng code theo thông tin đó để lấy ra dữ liệu mà chúng ta lựa chọn. Trước tiên, hãy bắt đầu bằng cách nhập thư viện của chúng tôi. Lưu ý rằng ở đây chúng tôi cũng đang nhập "thời gian", điều này sẽ hữu ích để không áp đảo máy chủ của trang web khi thu thập thông tin.
Trước tiên, chúng tôi sẽ nhắm mục tiêu trang duy nhất để rút từng phần thông tin chúng tôi muốn,
Sử dụng prettify giúp bạn dễ dàng có cái nhìn tổng quan về mã HTML của trang và cung cấp đầu ra như thế này,
Bây giờ tất cả thông tin trên trang quan tâm của chúng tôi là trong "súp" biến của chúng tôi. Chúng ta phải đào sâu hơn vào mã để lặp lại thông qua các thẻ và thẻ phụ khác nhau để nắm bắt thông tin cần thiết.
Năm điểm chính cho mỗi tin tuyển dụng là,
Nếu chúng ta nhìn vào trang, có 15 tin tuyển dụng. Do đó, mã của chúng ta cũng sẽ tạo ra 15 mục khác nhau. Tuy nhiên, nếu mã cung cấp ít hơn mức này, chúng ta có thể tham khảo lại trang và xem những gì không được chụp.
As can be seen, the entirety of each job posting is under <div> tags, with an attribute “class” = “row result.”
Further, we could also see that job titles are under <a> tags, with the attribute “title = (title)”. One can see the value of the tag’s attribute with tag[“attribute”], so I can use it to find each posting’s job title.
Nếu chúng ta tóm tắt, hàm chúng ta sẽ thấy bao gồm ba bước sau,
Mã này sẽ mang lại một đầu ra như thế này,
Getting company names can be a bit tricky because most of them are appearing in <span> tags, with “class”:” company”. They are also housed in <span> tags with “class”:” result-link-source”.
Chúng tôi sẽ sử dụng các báo cáo if / else để trích xuất thông tin công ty từ mỗi nơi này. Để loại bỏ các khoảng trắng xung quanh tên công ty khi chúng được xuất ra, chúng ta sẽ sử dụng inputting.strip() ở cuối.
Locations are located under the <span> tags. Span tags are sometimes nested within each other, such that the location text may sometimes be within “class”:”location” attributes, or nested in “itemprop”:”addressLocality”. However a simple for loop can examine all span tags for text and retrieve the necessary information.
Tiền lương là phần khó khăn nhất để trích xuất từ các bài đăng công việc. Hầu hết các bài đăng hoàn toàn không công bố thông tin về lương, trong khi những bài đăng khác thì có, có thể có nhiều nơi để chọn điều đó. Vì vậy, chúng ta phải viết một mã có thể nhận nhiều mức lương từ nhiều nơi và nếu không tìm thấy lương, chúng ta cần tạo giá trị "Không tìm thấy gì" cho bất kỳ công việc nào không có lương.
Some salaries are under <nobr> tags, while others are under <div> tags, “class”:”sjcl” and are under separate div tags with no attributes. Try/except statement can be helpful while extracting this information.
Công việc cuối cùng là lấy bản tóm tắt công việc. Tuy nhiên, không thể lấy tóm tắt công việc cho từng vị trí cụ thể vì chúng không được bao gồm trong HTML từ một trang Indeed nhất định. Chúng tôi có thể nhận được một số thông tin về từng công việc từ những gì được cung cấp. Chúng ta có thể sử dụng Selenium cho mục đích này.
But let’s first try this using python. Summaries are located under <span> tags. Span tags are nested within each other such that the location text is within “class”:” location” tags or nested in “itemprop”:” adressLocality”. However, using a simple for loop can examine all span tags for text to retrieve the necessary information.
Trong bài viết này, chúng ta đã thấy web scraping là gì và nó có thể hữu ích như thế nào trong cuộc sống hàng ngày của chúng ta bằng cách lấy một ví dụ thực tế về việc thu thập dữ liệu công việc từ các trang web của Indeed. Xin lưu ý rằng kết quả bạn nhận được có thể khác với những kết quả này vì các trang là động, vì vậy thông tin liên tục thay đổi theo thời gian.
Web Scraping là một kỹ thuật đáng kinh ngạc nếu được thực hiện đúng và theo yêu cầu của bạn. Chúng tôi đã thấy thêm năm khía cạnh quan trọng của mỗi tin tuyển dụng và cách trích xuất chúng. Khi bạn tự mình thử mã này, bạn sẽ có dữ liệu cạo các bài đăng công việc và bạn không cần phải tìm kiếm công việc theo cách thủ công, điều này thật tuyệt vời. Kỹ thuật tương tự cũng có thể được áp dụng cho các trang web khác, nhưng cấu trúc của chúng có thể khác nhau. Do đó, người ta cần tối ưu hóa mã của họ theo đó. Nhưng tất cả những điều cơ bản đều được đề cập trong bài viết này, vì vậy sẽ không có bất kỳ khó khăn nào trong việc cạo các trang khác.