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 scraper 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 scraping giúp scrapers tránh bị cấm bởi các kỹ thuật chống scraping mà các trang web đặt. Tuy nhiê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 scraper 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 scraping giúp scrapers tránh bị cấm bởi các kỹ thuật chống scraping mà các trang web đặt. Tuy nhiên, việc sử dụng API rất tốn kém 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 về Reddit. Reddit tự quảng cáo là "trang nhất 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 nhận xét về bài đăng của người khác. Vì vậy, nó 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 được gọi là Python Reddit API Wrapper, được rút ngắn cho 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 cạo Reddit bằng python. Nhưng trước đó, bạn cần biết lý do tại sao bạn phải cạo 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à "subreddits". 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 hành động 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ể cạo rất nhiều điểm dữ liệu từ Reddit, chẳng hạn như:
Bạn có thể lấy bất kỳ thông tin nào từ Reddit có liên quan đến doanh nghiệp của mình vì những nhu cầu sau:
Chẳng hạn
Reddit scraping sử dụng web scraper (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 các trình cạo Reddit vì những hạn chế bạn phải đối mặt khi sử dụng API Reddit chính thức. Tuy nhiên, nếu bạn sử dụng trình quét web không sử dụng API Reddit để 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à web scraping là bất hợp pháp.
Để có một phiên cạo không gặp trở ngại, bạn sẽ phải trốn tránh các hệ thống chống cạo do Reddit đưa ra. Các kỹ thuật chống cạo 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 với sự trợ giúp của 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 Captcha như 2Captcha.
Có năm cách để cạo Reddit, và đó là:
Hãy xem cách chúng ta có thể quét Reddit bằng API Reddit với sự trợ giúp của các bước sau.
Bạn cần tạo một tài khoản Reddit trước khi tiếp tục. Để sử dụng PRAW, bạn phải đăng ký API Reddit bằng cách nhấp vào liên kết này .
Đầu tiên, chúng tôi sẽ nhập các mô-đun tích hợp sẵn của Pandas, tức là ngày giờ và hai mô-đun của bên thứ ba, PRAW và Pandas, như hình dưới đây:
nhập khẩu nguyên liệu
Nhập khẩu 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. Đầu tiên, bạn cần kết nối với Reddit bằng cách gọi tôm. Reddit hàm 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 = tôm. Reddit(client_id='PERSONAL_USE_SCRIPT_14_CHARS', \
client_secret='SECRET_KEY_27_CHARS ', \
user_agent='YOUR_APP_NAME', \
username='YOUR_REDDIT_USER_NAME', \
mật khẩu = 'YOUR_REDDIT_LOGIN_PASSWORD')
Bây giờ, bạn có thể nhận được subreddit của sự lựa chọn của bạn. Vì vậy, hãy gọi phiên bản .subreddit từ reddit (biến) và chuyển tên của subreddit bạn muốn truy cập. Ví dụ: bạn có thể sử dụng subreddit r / Nootropics.
subreddit = reddit.subreddit ('Nootropics')
Mỗi subreddit có năm cách khác nhau dưới đây để tổ chức các chủ đề được tạo bởi Redditors:
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 nộp 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 chuyển giới hạn đến .top như:
top_subreddit = subreddit.top(giới hạn = 600)
Bạn có thể cạo 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 tôi sẽ làm điều này bằng cách lưu trữ dữ liệu của chúng tôi trong một từ điển và sau đó sử dụng một vòng lặp for như hình dưới đây.
topics_dict = { "title":[], \
"score":[], \
"id":[], "url":[], \
"created": [], \
"body":[]}
Bây giờ, chúng ta có thể cạo dữ liệu từ API Reddit. Chúng tôi sẽ thêm thông tin vào từ điển của chúng tôi bằng cách lặp qua đối tượng top_subreddit của chúng tôi.
Đối với bài dự thi 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 tôi đưa dữ liệu của mình vào Pandas Dataframes vì từ điển Python không dễ đọc.
topics_data = PD. Khung dữ liệu(topics_dict)
Rất dễ dàng để 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 của mình 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 bạn tự động hóa hành động của mình trên Reddit mà không sử dụng proxy.
Vì vậy, hãy xem xét một số proxy tốt nhất cho Reddit thuộc hai loại:
Proxy dân cư - Đây là những đị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í thực tế 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à những đị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 mua chúng từ một nhà cung cấp dịch vụ đám mây.
Sau đây là một số proxy dân cư và trung tâm dữ liệu hàng đầu cho Reddit.
Smartproxy là một trong những nhà cung cấp proxy dân cư cao cấp hàng đầu vì nó có hiệu quả cho 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 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 Stormproxy khiến chúng trở thành một lựa chọn tốt. Chúng có giá cả phải chăng và giá rẻ để sử dụng. Họ có proxy cho các trường hợp sử dụng khác nhau và cung cấp proxy dân cư tốt nhất để 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 để cạo. Nó cũng cung cấp proxy trung tâm dữ liệu chuyên dụng cùng với các proxy trung tâm dữ liệu được chia sẻ. 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, tức là,
Highproxy hoạt động với Reddit và có các loại proxy sau:
Bạn cũng có thể sử dụng Instantproxy để 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%. Chúng là rẻ nhất trong tất cả các proxy trung tâm dữ liệu.
Bạn cần proxy khi bạn đang làm việc với một số công cụ tự động trên Reddit. Đó là 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ư phiếu bầu, bài đăng, 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 kết quả xấu.
Bạn có thể cạo thủ công nếu yêu cầu cạo Reddit của bạn nhỏ. Nhưng nếu các yêu cầu trở nên lớn, bạn phải tận dụng các phương pháp cạo tự động như công cụ quét web và tập lệnh tùy chỉnh. Các trình quét web chứng minh là hiệu quả về chi phí và tài nguyên khi yêu cầu cạo hàng ngày của bạn nằm trong vòng vài triệu bài đăng.
Vì vậy, hãy xem xét một số công cụ quét Reddit tốt nhất là giải pháp tốt nhất để thu thập một lượng lớn dữ liệu Reddit.
Scrapestorm là một trong những công cụ cạo tốt nhất hiện có trên thị trường vì nó hoạt động khá tuyệt vời khi cạo 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 quét 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 API Reddit. Điều đó có nghĩa là bạn không cần mã thông báo API dành cho nhà phát triển và ủy quyề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 cạo 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 về năm cách để thu thập dữ liệu Reddit và cách dễ nhất là sử dụng API Reddit vì nó chỉ yêu cầu các kỹ năng mã hóa cơ bản. PRAW là một trình bao bọc Python cho API Reddit cho phép bạn sử dụng API Reddit với giao diện Python sạch sẽ. Nhưng khi bạn có yêu cầu cạo 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 các trình quét Reddit. Để 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 trung tâm dữ liệu hoặc proxy dân cư.