我有大约 50,000 多个网站,并希望将 html 内容保存到数据库中。所以我写了这段代码;但是,对于 50,000 多个网站来说,速度太慢了。有没有更好的方法来获取页面内容并将其保存到数据库中?
我的代码:
import requests
import MySQLdb
from threading import Thread
import Queue
db = MySQLdb.connect('127.0.0.1','root','','random_db') # connect
cursor = db.cursor()
result = cursor.execute("SELECT id , url from sites where html=''")
result = cursor.fetchall()
c = 1
def save_to_db(q,data):
try:
content = requests.get("http://" + data[1]).text
except:
content = 'empty'
query = "UPDATE sites SET html='%s' WHERE id=%d"\
%(MySQLdb.escape_string(str(content)), data[0])
q.put(query)
q = Queue.Queue()
for data in result:
t = Thread(target=save_to_db,args=(q,data))
t.start()
cursor.execute(q.get())
if c > 2000:
db.commit()
c = 0