python多线程数据库操作_python多线程 + 批量插入 数据库 健壮你的小爬虫

参考链接:

获取 url,标题以及时间。。。。(很简单的奥,xpath一下子就可以提取到了)

(这次主要是练习多线程和批处理存入数据库的,所以只是简单的解析,获取页面元素)

重要思路: 开启多线程时

1)首先将爬取的url 放入到数据结构的队列里,保证数据安全。

2)将爬取到的结果,全部存入到一个结果集队列里,进行下一步的操作。

3)队列里的get和put方法不要混淆,put是向队列里添加元素,get是取出或者是踢出并返回这个元素!!!!

第一步: 创建线程以及存储队列:

def main():

start_url = Queue.Queue() # 存放url的队列

result_queue = Queue.Queue() # 结果集队列

for i in range(1, 3):# 网站分页

page_url = 'http://data.stcn.com/list/djsj_%s.shtml' % i

start_url.put(page_url) # 将值添加到start_url队列中

# 构建线程

thread_list = [] # 存放线程的容器

for n in range(4): # 一次运行4 个线程

# 创建线程,target调用get_news_url方法,args传入参数

t_t = threading.Thread(target=get_news_url, args=(start_url, result_queue))

thread_list.append(t_t)

for t in thread_list:

t.start() # 启动线程

第二步:解析网页,获取目标元素(不多介绍了哈)

def get_news_url(start_url, result_queue): # 在main方法里传入参数

result = []

while start_url.qsize():

page_url = start_url.get() # 从队列中取出并返回这个数据

try:

response = requests.get(page_url)

except Exception as e:

print "抓取网页错误,错误为:%s" % e

return None

if response.status_code == 200:

selector = etree.HTML(response.text

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值