多线程静态网页爬虫(三)

import requests
from lxml import etree
import threading
from queue import Queue
url="https://www.qjnu.edu.cn/channels/9260.html"
word=input("请输入词汇:")
a=requests.get(url)
b=a.content.decode()
c=etree.HTML(b)
ad=c.xpath("//h4/a/@href") #网页网址
title=c.xpath("//h4/a/text()")#标题内容
d=[]
for i in range(len(ad)):#将符合word词汇的标题网址存入列表d中
    if word in title[i]:
        d.append(ad[i])

#保存对应的网页地址到“学校党员主题网址.txt”
for i in range(len(d)):
    with open('学校'+word+'主题网址.txt','at',encoding='utf-8') as f:
        f.writelines(d[i])
        f.writelines('\n')


def Pachong(u): #将正文内容写进文档
    aa=requests.get(u)
    bb=aa.content.decode()
    cc=etree.HTML(bb)
    dd=cc.xpath("//span/text()")
    dd.insert(0,'第'+str(i)+'篇相关词汇内容:\n')
    dd.append('\n')
    with open('学校'+word+'主题.txt','at',encoding='utf-8') as f:
        f.writelines(dd)
        f.writelines('\n')
#import time
#t_start=time.perf_counter()
#创建一个空列表,存标题网址
url_queue=Queue()
for i in range(len(d)):
    url_queue.put(d[i])
#多线程
aa=[]
for i in range(url_queue.qsize()):
    a=threading.Thread(target=Pachong,args=(url_queue.get(i)))
    aa.append(a)
    print(a)
#for j in aa:#开始执行程序
    #j.start()
#for k in aa:#保证子线程能够执行完成
    #k.join()
#t_end=time.perf_counter()
#t_all=t_end-t_start
#print(t_all)
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值