웹 스크레이퍼를 구축 중입니다. 기본적으로, 어떤 소프트가 할 것입니다 것은 :Python/PySide/PyQt의 멀티 스레드 웹 스크래핑
- 사용자가 (나) 일부 데이터 (IDS) 입력 - 아이디가 복잡하고, 그래서 그냥 숫자 그 ID를 기반으로
- 는 스크립트가 http://localhost/ID
이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 그래서 나는 그것을 위해 20-30 개의 동시 연결을 찾고 있습니다.
간단한 루프가 해결책일까요? 이 루프는 QThreads (Qt 앱)를 시작하므로 동시에 실행됩니다.
그러나 루프와 함께보고있는 문제는 전에 사용되지 않은 ID (예 : iteration/thread가 사용되기 직전에 사용 된 ID)를 사용하도록 지시하는 방법입니다. 사용 된 ID를 추적하고 사용되지 않는 ID를 QThreads에 위임하는 일종의 "위임자"함수가 필요합니까?
은 지금은 몇 가지 코드를 작성했습니다하지만이 정확한지 잘 모르겠습니다 :
class GUI(QObject):
def __init__(self):
print "GUI CLASS INITIALIZED!!!"
self.worker = Worker()
for i in xrange(300):
QThreadPool().globalInstance().start(self.worker)
class Worker(QRunnable):
def run(self):
print "Hello world from thread", QThread.currentThread()
지금 나는이 정말 내가 원하는 것을 얻을 수 있는지 확실하지 않습니다. 실제로 별도의 스레드에서 실행되고 있습니까? 나는 이것이 실행될 때마다 currentThread()
이 동일하기 때문에 묻고 있는데, 그렇게 보이지 않습니다.
기본적으로 내 질문은 여러 개의 동일한 QThread를 동시에 어떻게 실행합니까?
미리 답변 해 주셔서 감사합니다.
GUI와 논리를 구분하고 GUI에만 QT를 사용해야합니다. 크롤러 로직은 순수한 파이썬으로 작성되거나 [scrapy] (http://scrapy.org/) – Dikei