利用多线程——爬取虎扑网信息内容——可写入word文档中(后续开发)

import os
from threading import Thread
from queue import Queue  # 导入队列库
from fake_useragent import UserAgent
path = os.getcwd() + "/fake_useragent_0.1.11.json"
ua = UserAgent(path=path)
import requests
from time import sleep
def xiancheng():
    # 如果不为空,则往下执行 非空则退出循环,下面已经扔进去数据了,所以不为空
    #只要里面有数据,它就会不停的拿
    while not urlque.empty():
        url = urlque.get()  #拿出urlque放入队列里的
        print(f'正在获取{url}页面数据')
        #print(f'正在获取第{i}页数据')
        headers = {'User-Agent': ua.chrome}
        resp = requests.get(url, headers=headers)
    #获取resp的json格式 get数据里data的内容
        for d in resp.json().get('data'):
            print(f'标题:{d.get("topicName")}  id:{d.get("tid")}  content:{d.get("content")}')
        sleep(3)
    #返回码是不是200 不是二百为错误
        if resp.status_code==200:
            print(f'成功获取第{url}页数据')
if __name__ == '__main__':
    # 创建一个队列,不然多线程每次拿的都是同一个数据
    urlque = Queue()
    for i in range(1, 11):  #对网页页数进行遍历生成多页网址
        url = f'https://www.hupu.com/home/v1/news?pageNo={i}&pageSize=50'
        urlque.put(url)  # 把生成的网址扔进url队列,上面线程get取走就可以了
    for a in range(5):  #创建多少线程
        t1 = Thread(target=xiancheng)
        t1.start()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值