Было бы здорово, если бы кто-то мог помочь мне с многопоточным скриптом и написать вывод в текстовый файл. Я действительно новичок в кодировании, поэтому, пожалуйста, помогите мне.Python Может ли этот скрипт быть многопоточным?
#!/usr/bin/python
from tornado import ioloop, httpclient
from BeautifulSoup import BeautifulSoup
from mechanize import Browser
import requests
import urllib2
import socket
import sys
def handle_request(response):
print response.code
global i
i = 0
i -= 1
if i == 0:
http_client = httpclient.AsyncHTTPClient()
for url in open('urls.txt'):
try:
br = Browser()
br.set_handle_robots(False)
res = br.open(url, None, 2.5)
data = res.get_data()
soup = BeautifulSoup(data)
title = soup.find('title')
if soup.title != None:
print url, title.renderContents(), '\n'
i += 1
except urllib2.URLError, e:
print "Oops, timed out?", '\n'
except socket.error,e:
print "Oops, timed out?", '\n'
except socket.timeout:
print "Oops, timed out?", '\n'
print 'Processing of list completed, Cheers!!'
sys.exit()
try:
ioloop.IOLoop.instance().start()
except KeyboardInterrupt:
ioloop.IOLoop.instance().stop()
Я пытаюсь grep заголовок HTTP-списка списка хостов.
Что вы пытались? :) – Eloims
«Я новичок в кодировании» - вы, вероятно, не хотите погружаться в многопоточность, а затем – muddyfish
Вам просто нужно зацикливать URL-адреса, потому что вы используете асинхронный запрос, который не будет блокировать вашу программу. Вы должны зарегистрировать обратный вызов, который вызывается, если ответ становится доступным 'http_client.fetch (url, request_callback_handler)'. – wenzul