Mọi người có thể dễ dàng thu thập và thu thập thông tin từ nhiều nguồn như Facebook, Reddit và Twitter. Bạn có thể nghĩ về một trình thu thập như một công cụ chuyên dụng trích xuất dữ liệu từ một trang web một cách chính xác và nhanh chóng. Các API thu thập giúp các trình thu thập tránh bị cấm bởi các kỹ thuật chống thu thập mà các trang web áp dụng. Tuy nhiên, nó là
Mọi người có thể dễ dàng thu thập và thu thập thông tin từ nhiều nguồn như Facebook, Reddit và Twitter. Bạn có thể nghĩ về một trình thu thập thông tin như một công cụ chuyên dụng trích xuất dữ liệu từ một trang web một cách chính xác và nhanh chóng. Các API thu thập thông tin giúp các trình thu thập thông tin tránh bị cấm bởi các kỹ thuật chống thu thập thông tin mà các trang web áp dụng. Tuy nhiên, sử dụng API tốn kém hơn so với một công cụ proxy do chính bạn quản lý.
Bạn đã sử dụng Reddit chưa? Nếu bạn là một nhà nghiên cứu xã hội và dành nhiều thời gian trực tuyến, rất có thể bạn đã nghe nói đến Reddit. Reddit tự nhận mình là "trang đầu của Internet". Đây là một diễn đàn thảo luận trực tuyến nơi mọi người chia sẻ nội dung và tin tức hoặc bình luận về bài đăng của người khác. Vì vậy, đây là một nguồn dữ liệu đáng kinh ngạc cho các nhà tiếp thị Internet và các nhà nghiên cứu xã hội.
Reddit có một API gọi là Python Reddit API Wrapper, viết tắt là PRAW, để thu thập dữ liệu. Trong blog này, tôi sẽ chỉ cho bạn các bước về cách thu thập Reddit bằng python. Nhưng trước đó, bạn cần biết lý do tại sao bạn phải thu thập Reddit.
Nếu chúng ta nói về thiết kế của Reddit, thì nó được chia thành nhiều cộng đồng được gọi là "subreddit". Bạn có thể tìm thấy bất kỳ subreddit nào về chủ đề bạn quan tâm trên Internet. Các nhà nghiên cứu xã hội chạy phân tích, đưa ra suy luận và thực hiện các kế hoạch khả thi khi họ trích xuất các cuộc thảo luận trên Reddit cho một chủ đề cụ thể.
Bạn có thể thu thập nhiều điểm dữ liệu từ Reddit, chẳng hạn như:
Bạn có thể thu thập bất kỳ thông tin nào có liên quan đến doanh nghiệp của mình từ Reddit vì những nhu cầu sau:
Ví dụ,
Reddit scraping sử dụng trình thu thập dữ liệu web (chương trình máy tính) để trích xuất dữ liệu có sẵn công khai từ trang web Reddit. Bạn cần sử dụng trình thu thập dữ liệu Reddit vì những hạn chế mà bạn phải đối mặt khi sử dụng Reddit API chính thức. Tuy nhiên, nếu bạn sử dụng trình thu thập dữ liệu web không sử dụng Reddit API để trích xuất dữ liệu từ Reddit, bạn sẽ vi phạm các điều khoản sử dụng Reddit. Nhưng điều đó không có nghĩa là việc thu thập dữ liệu web là bất hợp pháp.
Để có một phiên scraping không bị trục trặc, bạn sẽ phải tránh các hệ thống chống scraping do Reddit đưa ra. Các kỹ thuật chống scraping phổ biến nhất được Reddit sử dụng là:
Bạn có thể giải quyết vấn đề theo dõi IP bằng cách sử dụng proxy và xoay vòng IP. Mặt khác, bạn có thể giải quyết vấn đề Captcha bằng cách sử dụng các giải pháp Captcha như 2Captcha.
Có năm cách để thu thập dữ liệu từ Reddit, đó là:
Hãy cùng xem cách chúng ta có thể thu thập dữ liệu từ Reddit bằng Reddit API với sự trợ giúp của các bước sau.
Bạn cần tạo tài khoản Reddit trước khi tiếp tục. Để sử dụng PRAW, bạn phải đăng ký Reddit API bằng cách theo liên kết này .
Đầu tiên, chúng ta sẽ nhập các mô-đun tích hợp của Pandas, tức là datetime và hai mô-đun của bên thứ ba, PRAW và Pandas, như được hiển thị bên dưới:
nhập praw nhập gấu trúc dưới dạng pd nhập datetime dưới dạng dt
Bạn có thể truy cập dữ liệu Reddit bằng Praw, viết tắt của Python Reddit API Wrapper. Trước tiên, bạn cần kết nối với Reddit bằng cách gọi hàm praw.Reddit và lưu trữ nó trong một biến. Sau đó, bạn phải truyền các đối số sau vào hàm.
reddit = praw.Reddit(client_id= 'PERSONAL_USE_SCRIPT_14_CHARS' , \ client_secret = 'SECRET_KEY_27_CHARS' , \ user_agent = 'TÊN_ỨNG_DỤNG_CỦA_BẠN' , \ username = 'TÊN_NGƯỜI_DÙNG_REDDIT_CỦA_BẠN' , \ password = 'MẬT_CẬP_TIN_ĐĂNG_KÝ_REDDIT_CỦA_BẠN' )
Bây giờ, bạn có thể lấy subreddit theo ý muốn. Vì vậy, hãy gọi phiên bản .subreddit từ reddit (biến) và truyền tên subreddit mà bạn muốn truy cập. Ví dụ, bạn có thể sử dụng subreddit r/Nootropics.
subreddit = reddit.subreddit( 'Thuốc bổ não' )
Mỗi subreddit có năm cách khác nhau để sắp xếp các chủ đề do người dùng Reddit tạo ra:
Bạn có thể lấy các chủ đề được bình chọn nhiều nhất như:
top_subreddit = subreddit.top()
Bạn sẽ nhận được một đối tượng giống như danh sách có 100 bài gửi hàng đầu trong r/Nootropics. Tuy nhiên, giới hạn yêu cầu của Reddit là 1000, vì vậy bạn có thể kiểm soát kích thước mẫu bằng cách truyền giới hạn cho .top như sau:
top_subreddit = subreddit.top(giới hạn = 600 )
Bạn có thể thu thập bất kỳ dữ liệu nào bạn muốn. Tuy nhiên, chúng tôi sẽ thu thập thông tin dưới đây về các chủ đề:
Chúng ta sẽ thực hiện điều này bằng cách lưu trữ dữ liệu trong một từ điển và sau đó sử dụng vòng lặp for như minh họa bên dưới.
topics_dict = { "title":[], \
"score":[], \
"id":[], "url":[], \
"created": [], \
"body":[]}
Bây giờ, chúng ta có thể trích xuất dữ liệu từ Reddit API. Chúng ta sẽ thêm thông tin vào từ điển của mình bằng cách lặp qua đối tượng top_subreddit.
để gửi trong top_subreddit: topics_dict [ "id" ] .append (submission.id) topics_dict [ "title" ] .append (submission.title) topics_dict [ "score" ] .append (submission.score) topics_dict [ "created" ] .append (submission.created) topics_dict [ "body" ] .append (submission.selftext)
Bây giờ, chúng ta đưa dữ liệu vào Pandas Dataframes vì từ điển Python không dễ đọc.
chủ đề_dữ liệu = pd.DataFrame(chủ đề_dict)
Rất dễ để tạo các tệp dữ liệu ở nhiều định dạng khác nhau trong Pandas, vì vậy chúng tôi sử dụng các dòng mã sau để xuất dữ liệu sang tệp CSV.
topics_data.to_csv( 'FILENAME.csv' , index = False )
Bạn biết rằng Reddit không phải là một trang web nghiêm ngặt khi nói đến các hạn chế sử dụng proxy. Nhưng bạn có thể bị bắt và bị phạt nếu tự động hóa các hành động của mình trên Reddit mà không sử dụng proxy.
Vì vậy, hãy cùng xem xét một số proxy tốt nhất cho Reddit thuộc hai loại:
Proxy dân dụng – Đây là địa chỉ IP mà Nhà cung cấp dịch vụ Internet (ISP) gán cho một thiết bị ở một vị trí vật lý cụ thể. Các proxy này tiết lộ vị trí thực tế của thiết bị mà người dùng sử dụng để đăng nhập vào một trang web.
Proxy trung tâm dữ liệu – Đây là nhiều địa chỉ IP khác nhau không bắt nguồn từ bất kỳ Nhà cung cấp dịch vụ Internet nào. Chúng tôi lấy chúng từ nhà cung cấp dịch vụ đám mây.
Sau đây là một số proxy dân dụng và trung tâm dữ liệu hàng đầu dành cho Reddit.
Smartproxy là một trong những nhà cung cấp proxy dân dụng cao cấp hàng đầu vì nó hiệu quả cho việc tự động hóa Reddit. Nó có một nhóm IP rộng lớn và cung cấp quyền truy cập vào tất cả các IP sau khi bạn đăng ký dịch vụ của nó.
Giá cả và băng thông không giới hạn của Stormproxies khiến chúng trở thành lựa chọn tốt. Chúng có giá cả phải chăng và rẻ khi sử dụng. Chúng có proxy cho nhiều trường hợp sử dụng khác nhau và cung cấp proxy dân dụng tốt nhất cho tự động hóa Reddit.
ProxyScrape là một trong những nhà cung cấp dịch vụ proxy phổ biến tập trung vào việc cung cấp proxy để thu thập dữ liệu. Nó cũng cung cấp proxy trung tâm dữ liệu chuyên dụng cùng với proxy trung tâm dữ liệu dùng chung. Nó có hơn 40k proxy trung tâm dữ liệu mà bạn có thể sử dụng để thu thập dữ liệu từ các trang web trên Internet.
ProxyScrape cung cấp ba loại dịch vụ cho người dùng, cụ thể là:
Highproxies hoạt động với Reddit và có các loại proxy sau:
Bạn cũng có thể sử dụng Instantproxies để tự động hóa Reddit vì chúng rất an toàn, đáng tin cậy, nhanh chóng và có thời gian hoạt động khoảng 99,9 phần trăm. Chúng là proxy trung tâm dữ liệu rẻ nhất.
Bạn cần proxy khi làm việc với một số công cụ tự động trên Reddit. Bởi vì Reddit là một trang web rất nhạy cảm, dễ dàng phát hiện các hành động tự động và chặn IP của bạn truy cập vào nền tảng. Vì vậy, nếu bạn đang tự động hóa một số tác vụ như bỏ phiếu, đăng bài, tham gia/hủy tham gia nhóm và quản lý nhiều tài khoản, bạn chắc chắn cần sử dụng proxy để tránh những kết quả xấu.
Bạn có thể sử dụng phương pháp scraping thủ công nếu nhu cầu scraping Reddit của bạn nhỏ. Nhưng nếu nhu cầu lớn, bạn phải tận dụng các phương pháp scraping tự động như công cụ scraping web và tập lệnh tùy chỉnh. Các trình scraping web tỏ ra hiệu quả về chi phí và tài nguyên khi nhu cầu scraping hàng ngày của bạn chỉ trong phạm vi vài triệu bài đăng.
Vì vậy, hãy cùng xem xét một số công cụ thu thập dữ liệu Reddit tốt nhất như giải pháp tốt nhất để thu thập lượng lớn dữ liệu Reddit.
Scrapestorm là một trong những công cụ thu thập dữ liệu tốt nhất hiện có trên thị trường vì nó hoạt động khá tốt khi thu thập dữ liệu Reddit. Nó sử dụng trí tuệ nhân tạo để tự động xác định các điểm dữ liệu chính trên trang web.
Trình thu thập Reddit của Apify giúp bạn dễ dàng trích xuất dữ liệu mà không cần sử dụng Reddit API. Điều đó có nghĩa là bạn không cần mã thông báo API của nhà phát triển và quyền hạn từ Reddit để tải xuống dữ liệu cho mục đích thương mại. Bạn cũng có thể tối ưu hóa việc thu thập dữ liệu của mình bằng cách sử dụng dịch vụ proxy tích hợp của nền tảng Apify.
Chúng tôi đã thảo luận năm cách để thu thập dữ liệu Reddit và cách dễ nhất là sử dụng Reddit API vì nó chỉ yêu cầu các kỹ năng lập trình cơ bản. PRAW là một trình bao bọc Python cho Reddit API cho phép bạn sử dụng Reddit API với giao diện Python sạch. Nhưng khi bạn có yêu cầu thu thập Reddit lớn, bạn có thể trích xuất dữ liệu có sẵn công khai từ trang web Reddit với sự trợ giúp của Reddit scraper. Để tự động hóa các hành động của bạn trên trang web Reddit, bạn cần sử dụng một trung tâm dữ liệu hoặc proxy dân dụng .