Cách thu thập câu trả lời của Qwen AI bằng trình duyệt Scraping không cần lớp phủ
Lead Scraping Automation Engineer
Những điểm chính:
- Một nhà soạn nhạc, một nút gửi, một nút trả lời. chat.qwen.ai ("Qwen Studio") cung cấp một nhà soạn nhạc duy nhất
textarea.message-input-textarea; gõ vào đó, bấm vào.message-input-right-button-send, sau đó đọc phản hồi từ.response-message-content.phase-answer. Đầu đến cuối, câu hỏi “Thủ đô của Pháp là gì?” trả về “Thủ đô của Pháp là Paris.” - Một phiên khách chỉ có một lượt; lượt tiếp theo cần đăng nhập. Một phiên Qwen ẩn danh trả lời một câu hỏi duy nhất, sau đó một bức tường "Chào mừng / Đăng nhập" xuất hiện trước lượt thứ hai. Lịch sử trò chuyện, tải tệp và tạo hình ảnh đều nằm sau bức tường đó — xử lý chúng như một yêu cầu xác thực, không phải là cuộc gọi khách.
- Chờ trên chân phản hồi, không phải bấm giờ. Qwen phát trực tuyến phản hồi từng token một. Tín hiệu "hoàn thành" đáng tin cậy là chân phản hồi (nút sao chép
.copy-response-button) nằm dưới tin nhắn — một giấc ngủ cố định bắt giữ một câu chưa hoàn thành. - Thẻ lý luận là một nút riêng biệt so với câu trả lời. Qwen tạo ra một thẻ "Suy nghĩ đã hoàn thành" có thể thu gọn (
.qwen-chat-thinking-status-card-title-text) ở trên thân câu trả lời. Phát hiện nó một cách độc lập để văn bản lý luận không bao giờ rò rỉ vào trường câu trả lời của bạn. - Ghim lối ra dân cư và giữ mỗi công việc trong một shell. chat.qwen.ai cá nhân hóa và giới hạn tỷ lệ theo IP, và Trình Duyệt Scraping xử lý proxy, dấu vân tay và render như là những mối quan tâm ở cấp độ phiên để mã của bạn chỉ xử lý các bộ chọn và chờ đợi.
- Miễn phí để bắt đầu. Tài khoản Scrapeless mới bao gồm thời gian chạy miễn phí của Trình Duyệt Scraping — đăng ký tại app.scrapeless.com.
Giới thiệu: biến câu trả lời của Qwen thành dữ liệu có cấu trúc
Qwen (thuộc gia đình Tongyi của Alibaba) là một trong những trợ lý mô hình ngôn ngữ lớn được sử dụng rộng rãi nhất, và các nhóm muốn có câu trả lời của nó dưới dạng dữ liệu: bộ dữ liệu đánh giá mô hình và hồi quy, giám sát câu trả lời về thương hiệu và loại, tập hợp cơ sở ngôn ngữ đa ngữ và thử nghiệm prompt song song. Vấn đề là những câu trả lời đó không tồn tại trên một trang HTML mở. Chúng được phát trực tiếp vào một ứng dụng React đã được làm nóng tại chat.qwen.ai — giao diện tự gán nhãn cho mình là "Qwen Studio" — và phản hồi chỉ tồn tại trong DOM sau khi ứng dụng render và hoàn tất việc phát trực tuyến.
Điều đó làm cho một fetch HTTP thông thường trở nên vô dụng: bạn nhận được một shell ứng dụng trống rỗng, không có câu trả lời. Nhà soạn nhạc, điều khiển gửi, và container câu trả lời đều là tên lớp đặc thù của ứng dụng mà thay đổi khi Qwen phát hành bản cập nhật UI, và một câu hỏi thứ hai vướng phải bức tường đăng nhập. Vì vậy, nhiệm vụ thực sự là điều khiển giao diện trò chuyện như một trình duyệt, chờ cho luồng ổn định, và kéo câu trả lời (và thẻ lý luận, khi có) ra khỏi DOM trực tiếp.
Bài viết này là một hướng dẫn theo phong cách terminal trên Trình Duyệt Scraping Scrapeless. Nó tạo ra một phiên đám mây, mở Qwen Studio, gõ một prompt vào nhà soạn nhạc, chờ phản hồi hoàn tất, và đọc lại dưới dạng JSON. Mỗi bộ chọn và tín hiệu dưới đây đều được lấy từ một lần chạy Trình Duyệt Scraping thực tế chống lại chat.qwen.ai. Một hướng dẫn tìm kiếm và câu trả lời AI đồng hành được liên kết ở cuối.
Những gì bạn có thể làm với nó
- Xây dựng bộ dữ liệu đánh giá Qwen. Ghim các cặp câu hỏi/câu trả lời theo thời gian để theo dõi sự dịch chuyển câu trả lời và cung cấp cho các bộ hồi quy mô hình.
- Giám sát thương hiệu và loại. Theo dõi cách Qwen trả lời các câu hỏi về sản phẩm của bạn, không gian của bạn, hoặc một chủ đề được quản lý, và so sánh các phản hồi qua các tuần.
- Xây dựng cơ sở ngữ nghĩa đa ngôn ngữ. Ghi lại phản hồi của Qwen bằng tiếng Trung và tiếng Anh cho việc đánh giá tìm kiếm đa ngôn ngữ.
- Thử nghiệm A/B với prompt. Chạy cùng một câu hỏi với nhiều cách diễn đạt khác nhau và so sánh những gì nhận được.
- Cờ dấu vết lý luận. Ghi lại xem một truy vấn có kích hoạt một lần suy nghĩ "Suy nghĩ đã hoàn thành", vì vậy bạn có thể tách biệt các câu trả lời nhanh chóng với những câu đã được suy nghĩ kỹ lưỡng.
- Thu thập trích dẫn. Khi một prompt khiến Qwen gắn câu trả lời của mình với các nguồn trên web, thu thập các liên kết nguồn mà nó cung cấp.
Tại sao Trình Duyệt Scraping Scrapeless
Trình Duyệt Scraping Scrapeless là một trình duyệt đám mây có thể tùy chỉnh, chống phát hiện, được thiết kế cho các trình thu thập thông tin web và các tác nhân AI. Đối với chat.qwen.ai nói riêng, nó mang đến:
- Proxy dân cư ở hơn 195 quốc gia (
--proxy-country,--proxy-state,--proxy-city) — chat.qwen.ai cá nhân hóa và điều chỉnh theo IP, vì vậy lối ra dân cư là yếu tố chịu tải cho việc thu thập liên tục. - Render JavaScript trong đám mây — Qwen Studio là một ứng dụng một trang đã được làm ẩm; nút trả lời chỉ tồn tại sau khi ứng dụng gắn kết và phát trực tuyến nó, điều mà HTML tĩnh không bao giờ thấy.
- Dấu vân tay chống phát hiện trên mỗi phiên — trình duyệt đám mây, một trình duyệt đám mây chống phát hiện được cung cấp bởi Chromium tự phát triển, hiện ra như Chrome thực sự đối với ứng dụng trò chuyện.
- Độ bền và hồ sơ phiên — giữ cookie Qwen đã đăng nhập sống lâu qua các cuộc gọi, điều này mở khóa con đường nhiều lượt trong Bước 5.
- Một bề mặt CLI duy nhất — một nhị phân
scrapeless-scraping-browserđiều khiển điều hướng, gõ, bấm, chờ đợi và đánh giá, vì vậy toàn bộ quy trình sống trong một shell.
Lấy khóa API của bạn trên gói miễn phí tại app.scrapeless.com. Trang sản phẩm Scraping Browser bao gồm thời gian chạy, và toàn bộ tập lệnh lệnh có trong tài liệu Scrapeless.
Điều kiện tiên quyết
- Node.js 18 hoặc mới hơn.
- Tài khoản Scrapeless và khóa API — đăng ký tại app.scrapeless.com.
jqđể phân tích JSON (tùy chọn; một phương án thay thế bằng grep được trình bày bên dưới).- Đối với việc trích xuất nhiều lượt: một tài khoản Qwen bạn kiểm soát. Quy trình khách đơn lẻ không cần đăng nhập; mọi thứ sau câu trả lời đầu tiên đều cần (Bước 5).
- Nắm vững cơ bản về terminal.
Cài đặt
Các công thức bên dưới chạy trên CLI scrapeless-scraping-browser. Việc thiết lập chỉ cần bốn bước ngắn — người dùng CLI cần làm #1, #2 và #4; người dùng AI-agent thêm #3.
1. Cài đặt gói CLI
bash
npm install -g scrapeless-scraping-browser
Điều này cung cấp nhị phân scrapeless-scraping-browser mà mọi bước dưới đây gọi. Kỹ năng không tự cung cấp thời gian chạy — nó tải các mẫu lệnh vào AI agent của bạn, nhưng CLI phải được cài đặt trước.
2. Cấu hình khóa API của bạn
Lấy mã thông báo của bạn từ app.scrapeless.com, sau đó lưu nó ở nơi CLI có thể đọc được:
bash
scrapeless-scraping-browser config set apiKey your_api_token_here
scrapeless-scraping-browser config get apiKey # xác minh
Tệp cấu hình nằm ở ~/.scrapeless/config.json với quyền truy cập bị giới hạn cho người dùng hiện tại, và nó có ưu tiên cao hơn biến môi trường. Đối với các trình chạy CI, nên sử dụng biến môi trường:
bash
export SCRAPELESS_API_KEY=your_api_token_here
3. Cài đặt kỹ năng Scrapeless trong AI agent của bạn
Đây là một bước riêng biệt so với #1. Bước 1 đã cài đặt nhị phân CLI — thời gian chạy mà agent của bạn gọi. Kỹ năng là thứ dạy agent của bạn cách gọi nó một cách chính xác (mẫu khám phá → gửi → đợi → trích xuất, các bộ chọn Qwen, chiến lược đợi). Chúng là hai thứ khác nhau và bạn cần cả hai cho quy trình làm việc dựa trên nhắc nhở.
Kỹ năng là một thư mục chứa SKILL.md + skill.json + references/. Nguồn chính thức là kho scrapeless-ai/scrapeless-agent-browser → skills/scraping-browser-skill trên GitHub; các lệnh cài đặt theo agent được tìm thấy trong tài liệu Scrapeless. Tải lại agent của bạn sau khi cài đặt để kỹ năng trở nên hoạt động.
4. Xác minh việc cài đặt
Kiểm tra bằng một nhắc nhở an toàn trước khi tương tác với Qwen:
"Sử dụng kỹ năng Scrapeless, hãy mở https://example.com và cho tôi biết tiêu đề của trang."
Agent của bạn nên tạo một phiên, mở trang và trả lời bằng "Domain Ví dụ". Nếu điều đó hoạt động, bạn đã sẵn sàng để điều khiển Qwen Studio.
Cách bạn thực sự sử dụng cái này: nhắc nhở agent của bạn
Sau khi cài đặt, bạn trích xuất Qwen bằng cách nói chuyện với agent của bạn — không phải bằng cách sao chép-dán bash. Kỹ năng tải các bộ chọn Qwen composer/send/answer và kiểm tra hoàn tất luồng vào ngữ cảnh của agent, vì vậy một nhắc nhở một dòng sẽ trả về JSON câu trả lời sạch.
Những nhắc nhở bạn có thể dán
| Bạn nói với agent của bạn | Những gì bạn nhận được trở lại |
|---|---|
| "Hỏi Qwen 'thủ đô của Pháp là gì?' và chỉ cho tôi câu trả lời." | Chuỗi câu trả lời từ thân tin nhắn đã hiển thị |
| "Hỏi Qwen 'giải thích RAG trong hai câu' và trả về JSON với câu trả lời + cờ lý do." | { answer, reasoning, model } |
| "Chạy 5 câu hỏi này qua Qwen và lưu lại qwen-eval.json." | Một tệp JSON, một hàng cho mỗi câu hỏi/câu trả lời |
| "Hỏi Qwen 'thủ đô của Pháp là gì' bằng tiếng Trung trên IP Singapore." | Phiên đã được tạo với --proxy-country SG, nhắc nhở được gửi bằng tiếng Trung |
| "Hỏi Qwen 'mới nhất về kính viễn vọng James Webb' và cũng thu thập bất kỳ liên kết nguồn nào mà nó trích dẫn." | { answer, citations: [...] } |
| "Qwen đã thực hiện một bước lý do trên 'chứng minh rằng sqrt(2) không phải là số hữu tỉ' chưa?" | reasoning: "Suy nghĩ đã hoàn thành" hoặc null |
Ví dụ thực tế: một câu trả lời của Qwen dưới dạng văn bản
Bạn nhập:
"Hỏi Qwen 'Thủ đô của Pháp là gì? Trả lời trong một câu ngắn gọn.' và chỉ trả về câu trả lời dưới dạng văn bản."
Kế hoạch của agent (bằng tiếng Anh đơn giản):
- Tạo một phiên cư trú (đầu ra của Hoa Kỳ là mặc định tốt cho Qwen Studio).
- Mở
https://chat.qwen.ai/, sau đó chờ cho đến khi trình soạn thảotextarea.message-input-textareaxuất hiện. - Điền câu hỏi vào trình soạn thảo và nhấp vào
.message-input-right-button-send. - Thăm dò cho đến khi chân phản hồi (
.copy-response-button) được gắn vào — đó là dấu hiệu cho thấy luồng hoàn tất. - Đọc
.response-message-content.phase-answervà trả về văn bản của nó.
Những gì bạn nhận được trở lại:
Thủ đô của Pháp là Paris.
Đó là toàn bộ giao diện người dùng. Việc phát hiện bộ chọn, thăm dò hoàn thành và định hình JSON trong các bước 1-4 dưới đây là những gì kỹ năng khiến tác nhân thực hiện — bạn không phải gõ bất kỳ điều nào trong số đó.
Định hình lời nhắc: cách điều khiển những gì trở lại
| Cách diễn đạt | Tác động |
|---|---|
| "…chỉ câu trả lời" / "…với cờ lý do" | Các lĩnh vực mà tác nhân trả về |
| "…dưới dạng JSON" / "…dưới dạng văn bản thuần" | Định dạng đầu ra |
| "…bằng tiếng Trung" / "…bằng tiếng Anh" | Ngôn ngữ lời nhắc |
| "…từ IP Singapore" / "…từ Đức" | Thiết lập --proxy-country |
| "…lưu vào qwen-eval.json" | Ghi vào tệp |
| "…chạy tất cả 10 câu hỏi" | Vòng lặp — phiên làm mới cho mỗi câu hỏi |
Các bước 1-6 dưới đây là tham chiếu cơ sở — hãy đọc chúng một lần để xem cách mẫu mở → gửi → chờ → trích dẫn kết hợp, sau đó hãy tin tưởng vào tác nhân của bạn để áp dụng nó. Việc lập trình bên ngoài một tác nhân hoạt động chính xác như đã hiển thị; kỹ năng chỉ là con đường nhanh hơn.
Bước 1 — Kết nối với Trình Duyệt Gỡ lỗi Không Đau đớn
Khởi tạo một phiên với egress dân cư trước khi mở bất kỳ trang nào. Địa lý của proxy được cố định trong suốt thời gian của phiên.
bash
SESSION=$(scrapeless-scraping-browser new-session \
--name "qwen-us" \
--ttl 1800 \
--proxy-country US \
--json | jq -r '.data.taskId')
echo "Phiên: $SESSION"
Phương pháp thay thế di động không có jq:
bash
SESSION=$(scrapeless-scraping-browser new-session \
--name "qwen-us" --ttl 1800 --proxy-country US --json \
| grep -oE '"taskId":"[^"]*"' | cut -d'"' -f4)
Egress dân cư Mỹ render Qwen Studio một cách rõ ràng. Qwen là một sản phẩm toàn cầu, vì vậy bất kỳ quốc gia dân cư ổn định nào cũng hoạt động; khớp địa lý với khu vực mà bạn muốn Qwen trả lời.
Bước 2 — Mở Qwen Studio và chọn thời gian chờ đúng
Mở chat.qwen.ai, sau đó quyết định một chiến lược chờ. Một ứng dụng trò chuyện giữ một kết nối trực tiếp mở để phát trực tuyến, vì vậy --load networkidle hiếm khi đạt đến một cửa sổ yên tĩnh — nó có xu hướng bị treo. Mẫu đáng tin cậy là một wait cố định theo sau bởi một kiểm tra sẵn sàng mà đếm số lượng trình soạn thảo.
bash
scrapeless-scraping-browser --session-id $SESSION open "https://chat.qwen.ai/"
scrapeless-scraping-browser --session-id $SESSION wait 4000
# Tín hiệu sẵn sàng: trình soạn thảo đơn lẻ đã được gắn.
scrapeless-scraping-browser --session-id $SESSION eval \
'document.querySelectorAll("textarea.message-input-textarea").length' # mong đợi 1
| Chiến lược | Hành vi trên Qwen Studio | Khuyến nghị |
|---|---|---|
wait --load networkidle |
Kết nối phát trực tiếp giữ mạng bận rộn; hiếm khi ổn định | Tránh cho chat.qwen.ai |
wait 4000 (cố định) |
Xác định — ứng dụng đã được làm mới bởi lúc đó | Mặc định |
eval đếm trình soạn thảo === 1 |
Tính sẵn sàng thực sự — đầu vào có thể tương tác | Sử dụng như cổng trước khi gõ |
Tiêu đề trang đọc "Qwen Studio" và biểu ngữ hiển thị nhãn mô hình đang hoạt động (ví dụ, Qwen3.7-Plus) bên cạnh một bộ chọn chế độ được đặt thành Tự động. Bạn không cần phải thay đổi bất kỳ điều gì để đọc một câu trả lời.
Bước 3 — Gửi một lời nhắc
Qwen Studio chỉ cung cấp đúng một trình soạn thảo, textarea.message-input-textarea. Điều khiển gửi chỉ được vũ trang một khi trình soạn thảo có các thao tác gõ thực sự — một fill lập trình đặt giá trị mà không kích hoạt trạng thái đầu vào của trình soạn thảo, vì vậy nút vẫn ở trạng thái bất động. Gõ lời nhắc theo từng ký tự, cho UI một chút thời gian, sau đó nhấp gửi.
Nếu bạn đang kết nối điều này với một phiên bản mới, hãy khám phá các bộ chọn trước thay vì tin tưởng vào chúng một cách máy móc — Qwen thay đổi tên lớp giữa các phiên bản:
bash
# Khám phá: xác nhận trình soạn thảo và bất kỳ điều khiển gửi nào trước khi điều khiển chúng.
scrapeless-scraping-browser --session-id $SESSION get html "main"
Sau đó gửi:
bash
PROMPT="Thủ đô của Pháp là gì? Trả lời trong một câu ngắn."
scrapeless-scraping-browser --session-id $SESSION type \
"textarea.message-input-textarea" "$PROMPT"
# Nút gửi được vũ trang một khi các thao tác gõ thực sự hạ cánh vào trình soạn thảo.
scrapeless-scraping-browser --session-id $SESSION wait 600
scrapeless-scraping-browser --session-id $SESSION click ".message-input-right-button-send"
Nhấn Enter trong trình soạn thảo được tập trung sẽ gửi cùng một lời nhắc — nhấn Enter sau khi gõ là một con đường tương đương, tiện lợi khi nút gửi chưa được vũ trang.
Khi gửi, Qwen chuyển hướng URL từ / đến /c/new-chat đến /c/guest và render câu hỏi của bạn như một tin nhắn người dùng, với phản hồi của trợ lý được gắn bên dưới.
Lấy API key của bạn trong gói miễn phí: app.scrapeless.com
Bước 4 — Chờ dòng phản hồi, sau đó trích xuất câu trả lời
Qwen phát dòng trả lời theo từng token, vì vậy đọc DOM quá sớm sẽ khiến bạn nhận được một câu chưa đầy đủ. Tín hiệu hoàn thành chính là phần chân của mỗi tin nhắn — điều khiển sao chép (.copy-response-button) chỉ xuất hiện sau khi dòng phát kết thúc. Theo dõi nó, sau đó chạy một extractor.
bash
# Thăm dò hoàn thành: điều khiển sao chép xuất hiện khi câu trả lời đã được hiển thị đầy đủ.
for i in 1 2 3 4 5 6 7 8; do
DONE=$(scrapeless-scraping-browser --session-id $SESSION eval '
document.querySelector(".chat-response-message .copy-response-button") ? "done" : "streaming"
' | tail -1 | tr -d '"')
[ "$DONE" = "done" ] && break
sleep 1
done
# Trích xuất: phần thân câu trả lời, cờ lý do, và bất kỳ liên kết nguồn nào — được bảo vệ theo từng trường.
scrapeless-scraping-browser --session-id $SESSION eval '
(function(){
const msg = document.querySelector(".qwen-chat-message-assistant, .chat-response-message");
if (!msg) return JSON.stringify({ answer: null });
const body = msg.querySelector(".response-message-content.phase-answer, .custom-qwen-markdown");
const reasoning = msg.querySelector(".qwen-chat-thinking-status-card-title-text");
const cites = Array.from(msg.querySelectorAll(".qwen-markdown a[href^=\"http\"]"))
.map(a => ({ url: a.href, text: a.textContent.trim().slice(0, 80) }));
return JSON.stringify({
url: location.href,
reasoning: reasoning ? reasoning.textContent.trim() : null,
answer: body ? body.textContent.trim() : null,
citations: cites,
});
})()
'
Trong lần chạy xác thực này, nó trả lại văn bản câu trả lời thực sự là Thủ đô của Pháp là Paris., một giá trị reasoning là Lý do đã hoàn thành (thẻ lý do đã được thu gọn), và một mảng citations rỗng — một prompt thực tế ngắn không khiến Qwen cần sử dụng các nguồn web.
Ghi chú về bộ chọn:
- Tin nhắn của trợ lý được bọc trong
.qwen-chat-message-assistant(cũng có thể truy cập qua.chat-response-message); văn bản câu trả lời nằm trong.response-message-content.phase-answer, được hiển thị dưới dạng các đoạn.qwen-markdown. - Thẻ lý do (
.qwen-chat-thinking-status-card-title-text) là anh em với phần thân câu trả lời, không phải là con của nó — truy vấn nó riêng để nhãn "Lý do đã hoàn thành" không bao giờ xuất hiện trong trườnganswercủa bạn. - Xem
citationsnhư là có thể null. Nó chỉ được nạp khi Qwen hiển thị liên kết nguồn cho một prompt có cơ sở web.
Bước 5 — Phiên làm việc xác thực, nhiều lượt (điều kiện tiên quyết)
Bề mặt khách mời chỉ trả lời một câu hỏi. Sau câu trả lời đầu tiên, Qwen hiển thị một hộp thoại "Chào mừng" — "Đăng nhập hoặc đăng ký để trò chuyện với Qwen, tải lên tệp và hình ảnh, tạo hình ảnh hoặc video, và nhiều hơn nữa" — với các nút Đăng nhập, Đăng ký, và Giữ nguyên trạng thái khách mời. "Giữ nguyên trạng thái khách mời" cho phép bạn tiếp tục đọc câu trả lời duy nhất mà bạn đã có sẵn, nhưng một lượt thứ hai, lịch sử hội thoại, tải lên tệp, và tạo hình ảnh hoặc video đều yêu cầu một tài khoản.
Bức tường đăng nhập đó là một điều kiện tiên quyết, không phải thứ có thể làm giả. Để trích xuất cuộc trò chuyện nhiều lượt:
- Giữ trạng thái đăng nhập, vì phiên làm việc kết thúc khi kết nối của nó đóng. Tiêm cookie phiên Qwen mà bạn đã xuất từ một tài khoản mà bạn sở hữu bằng lệnh
cookies setcủa CLI, hoặc lưu thông tin đăng nhập một lần vào Vault Auth (auth save <name>) và phát lại chúng vớiauth login <name>trong một phiên mới — xem tài liệu Scrapeless để biết các cờ cookie và xác thực. - Sử dụng lại trạng thái đó cho mọi lần gọi thay vì xác thực lại mỗi lượt.
- Dẫn dắt cuộc trò chuyện bằng cùng một loại → nhấp → chờ → trích xuất từ Bước 3–4; mỗi lượt mới thêm một node
.qwen-chat-message-assistantmà bạn đọc theo cách tương tự. Đối với phiên làm việc nhiều lượt phải kéo dài hơn một kết nối duy nhất, đường dẫn TypeScript@scrapeless-ai/sdkgiữ kết nối bền vững mà CLI không có.
Giữ thông tin đăng nhập trong biến môi trường hoặc trình quản lý bí mật của bạn, không bao giờ trong script. Câu trả lời của khách một lượt không cần bất kỳ điều này; chỉ cần sử dụng quy trình xác thực khi pipeline thực sự cần hơn một lượt.
Bước 6 — Mở rộng: cách ly trạng thái CLI theo từng công nhân
Chạy nhiều công việc Qwen cùng một lúc trên một máy chủ cần cẩn thận, vì CLI chia sẻ trạng thái daemon giữa các shell. Các nguyên tắc cơ bản có thể chịu được tải song song:
-
Chuỗi lệnh một shell. Chạy toàn bộ chuỗi công việc trong một lần gọi shell nguyên tử duy nhất để các worker khác không thể xen vào các bước của bạn. Một lưu ý về toán tử chuỗi:
openthoát không bằng 0 ngay cả khi điều hướng thành công (một số trang làm chopage.gotoném lỗi sau khi trang đã có thể sử dụng), vì vậy hãy tách biệt nó bằng;thay vì&&và kiểm tra trạng thái bằngeval 'location.href'thay vì phụ thuộc vào mã thoát của nó —new-session && open "https://chat.qwen.ai/" ; wait 4000 && type … && click … && eval …. Tính nguyên tử của shell đơn lẻ là nguyên thủy chịu lực. -
Tên phiên duy nhất cho mỗi worker. Daemon chia sẻ trạng thái giữa các shell, vì vậy tên phiên duy nhất giữ cho các cuộc gọi của một worker không vào nhầm phiên của worker khác.
-
Giới hạn khoảng 3 worker đồng thời trên mỗi máy chủ. Vượt quá điều đó, sự cạnh tranh gia tăng. Để mở rộng hơn, phân mảnh các worker trên các máy chủ khác nhau — trạng thái daemon là theo máy chủ, không phải theo tài khoản.
Đối với một pipeline đánh giá ổn định, thứ tự theo máy chủ là đơn giản và đủ: một câu hỏi Qwen tại một thời điểm, xếp hàng phần còn lại.
Những gì bạn nhận lại
Bộ trích xuất Bước 4 trả về url, reasoning, answer và citations; các trường query, model và authenticated được làm phong phú xung quanh nó — câu lệnh bạn đã gửi, nhãn mô hình banner đọc ở Bước 2 và liệu phiên đó có được đăng nhập hay không. Mỗi giá trị bên dưới là từ một lần thu thập thực tế.
json
{
"query": "Thủ đô của Pháp là gì? Trả lời trong một câu ngắn.",
"url": "https://chat.qwen.ai/c/guest",
"model": "Qwen3.7-Plus", // đọc từ nhãn mô hình banner; gán cố định để các hàng đánh giá vẫn tương đồng
"reasoning": "Suy nghĩ đã hoàn thành", // null khi câu hỏi không kích hoạt được quá trình suy nghĩ
"answer": "Thủ đô của Pháp là Paris.",
"citations": [], // chỉ được điền khi Qwen căn cứ câu trả lời với nguồn web
"authenticated": false // khách = một lượt; true khi bạn tái sử dụng một phiên đã đăng nhập
}
Những quan sát trung thực:
- Câu trả lời phát ra, vì vậy chỉ nên đọc nó sau khi phần đuôi phản hồi được lắp lên (Bước 4) — nếu không, bạn sẽ thu được một câu chưa hoàn chỉnh.
reasoninglànullcho nhiều gợi ý thực tế ngắn. Qwen chỉ hiển thị thẻ "Suy nghĩ đã hoàn thành" khi nó thực hiện một quá trình suy nghĩ, vì vậy hãy sử dụng nó như một tín hiệu, không phải một đảm bảo.citationsgiữ trống trừ khi câu hỏi ép Qwen phải căn cứ câu trả lời của nó vào các nguồn web. Bảo vệ trường này như là nullable downstream.authenticated: falselà một trạng thái hợp lệ, không phải là một thất bại — bề mặt khách trả lời một câu hỏi, và rào cản đăng nhập (Bước 5) là biên giới cho bất cứ điều gì nhiều hơn.- Nhãn mô hình banner phản ánh mô hình mà Qwen Studio đã mặc định; ghi lại nó theo hàng để việc hoán đổi mô hình không làm lẫn lộn bộ đánh giá của bạn.
Kết luận
Việc thu thập dữ liệu từ Qwen chủ yếu là cách đối đãi chat.qwen.ai như một ứng dụng phát trực tuyến: tạo một phiên đám mây dân cư, mở Qwen Studio, gõ vào một trình soạn thảo, chờ đợi phần đuôi câu trả lời được lắp lên, và đọc phản hồi từ DOM đã lưu trữ. Bảo vệ mọi trường theo một tín hiệu thực — phần thân câu trả lời tách biệt với thẻ suy nghĩ, trích dẫn là nullable — để sơ đồ của bạn vẫn đáng tin cậy khi Qwen phát hành thay đổi giao diện. Nhớ ranh giới: một phiên khách là tốt cho một câu trả lời sạch, và mọi thứ vượt qua nó sống ở phía sau rào cản đăng nhập, vì vậy chỉ tìm kiếm luồng đã xác thực, được duy trì bằng cookie khi nhiều lượt thực sự cần thiết. Đối với phía tìm kiếm và AI-đáp của cùng một mẫu, hãy xem cách thu thập dữ liệu từ kết quả Tìm kiếm Google bằng Trình duyệt Thu thập dữ liệu Không tốn phí, và so sánh thời gian chạy và kế hoạch trên trang giá cả.
Sẵn sàng để xây dựng Pipeline Dữ liệu Sử dụng AI?
Tham gia cộng đồng của chúng tôi để nhận được kế hoạch miễn phí và kết nối với các nhà phát triển xây dựng các pipeline trích xuất câu trả lời LLM: Discord · Telegram.
Đăng ký tại app.scrapeless.com để có runtime Trình duyệt Thu thập dữ liệu miễn phí và điều chỉnh các mẫu trên cho các gợi ý Qwen, địa phương và cuộc hội thoại đã xác thực mà pipeline của bạn cần.
FAQ
Q: Việc thu thập dữ liệu từ Qwen có hợp pháp không?
A: Việc thu thập câu trả lời công khai để phân tích, đánh giá mô hình và nghiên cứu thường được phép ở hầu hết các khu vực, nhưng các điều khoản dịch vụ của Qwen và Alibaba vẫn áp dụng, và luật pháp khác nhau theo từng khu vực. Xem xét các điều khoản mục tiêu trước khi triển khai thương mại và tham khảo ý kiến luật sư, đặc biệt là liên quan đến việc lưu trữ nội dung được tạo ra hoặc bất cứ thứ gì liên quan đến dữ liệu cá nhân.
Q: Tôi có cần một proxy không?
A: Có. chat.qwen.ai cá nhân hóa và giới hạn số lượng kết nối theo IP, và một IP thô duy nhất sẽ nhanh chóng bị giảm tốc độ. Gắn kết kết nối dân cư với --proxy-country (Bước 1); khớp quốc gia với địa phương mà bạn muốn Qwen phản hồi.
Q: Qwen hiển thị một thông báo "Chào mừng / Đăng nhập" — làm thế nào để tôi có thể hiển thị sạch?
A: Đối với một câu trả lời duy nhất, giao diện khách có thể hoạt động mà không cần đăng nhập — hãy khởi động phiên bằng cách mở https://chat.qwen.ai/ trước và xác nhận rằng trình soạn thảo đã được gắn kết (Bước 2) trước khi bạn gõ, và giữ kết nối dân cư đã gán. Chỉ có đường đi nhiều lượt cần một tài khoản; đó là yêu cầu xác thực ở Bước 5, nơi cookies được tiêm hoặc Vault Auth giữ đăng nhập giữa các cuộc gọi.
Q: Các bộ chọn ngừng khớp sau khi cập nhật Qwen — bây giờ tôi nên làm gì?
A: Qwen Studio thay đổi tên lớp trong các bản phát hành. Khám phá lại DOM trực tiếp bằng cách sử dụng get html "main" và siết chặt các bộ chọn của bạn với những gì thực sự được hiển thị. Dựa vào các điểm neo ổn định: trình soạn thảo đơn textarea.message-input-textarea, bộ bọc trợ lý .qwen-chat-message-assistant, và nội dung câu trả lời .response-message-content.phase-answer.
Q: Tôi có thể chạy bao nhiêu phiên Qwen song song?
A: Giữ nó ở khoảng ba công nhân trên mỗi máy chủ, nối các lệnh CLI của mỗi công việc trong một shell duy nhất, và đặt cho mỗi công nhân một tên phiên độc nhất (Bước 6). Để có nhiều thông lượng hơn, phân chia giữa các máy chủ thay vì xếp chồng công nhân trên một máy.
Q: Tôi có thể làm điều này mà không cần một đại lý AI không?
A: Có. Bash ở trên chạy từ đầu đến cuối một cách độc lập. Kỹ năng chỉ đơn giản cho phép đại lý của bạn điều khiển cùng một vòng lặp mở → gửi → chờ → trích xuất từ một dòng lệnh, đó là con đường được khuyến nghị nhưng không phải là yêu cầu.
Q: Làm thế nào để tôi có thể ghi lại chuỗi lý luận của Qwen?
A: Phát hiện thẻ lý luận với .qwen-chat-thinking-status-card-title-text; nhãn "Suy nghĩ đã hoàn thành" bị thu hẹp đánh dấu rằng một lượt lý luận đã chạy. Truy vấn nó riêng biệt từ .response-message-content.phase-answer để đảm bảo văn bản lý luận và câu trả lời cuối cùng nằm trong các trường khác nhau, và mở rộng thẻ nếu bạn cần chuỗi đó.
Q: Qwen sẽ trả lời bằng tiếng Trung hay tiếng Anh?
A: Nó phụ thuộc vào ngôn ngữ câu hỏi và địa phương tài khoản hoặc proxy. Hỏi bằng ngôn ngữ mục tiêu và gắn kết một --proxy-country tương ứng để giữ cho các câu trả lời nhất quán trong một tập đánh giá đa ngôn ngữ.
Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.



