pool.map传入一个函数与一个列表,列表中包含字典

该代码示例展示了一个Python程序,它使用requests获取网页HTML,用BeautifulSoup解析数据,然后通过自定义函数job将数据保存到Excel表格。job1函数接收字典对象,对每个URL调用job。利用multiprocessing.dummy.Pool进行多进程处理,提高爬取效率。最后,程序计算总耗时并打印结果。
摘要由CSDN通过智能技术生成

 1、即传入的函数返回另外一个函数,在另外一个函数中处理数据。

import time
import requests
from multiprocessing.dummy import Pool
# 自定义函数 job用于获取网页内容信息并保存到表格
def job(name ,url):
    file_path = pd.ExcelWriter(name + '.xlsx')  # 创建一个表格
    html = requests.get(url) # 请求网页
    jjhtml = etree.HTML(html.text)
    ld_html = jjhtml.xpath('//ul[@class="listContent"]/li')
    for index,ld in enumerate(ld_html):
        ld_age = ld.xpath('./div/div[3]/text()')
        ld_url = ld.xpath('./div/div[@class="title"]/a/@href')
        ldlist = []
        content = {'哦哦哦': ldage[0], '哦哦哦url': ld_url[0]}
        ldlist.append(content)
        pf = pd.DataFrame(list(ldlist))
        order = ['哦哦哦', '哦哦哦url']
        pf = pf[order]  # 表头
        pf.fillna(' ', inplace=True) # 去除空格
        pf.to_excel(file_path, encoding="gbk", header=False, index=False, startrow=( index + 3))
        file_path.save()

def job1(object):
    for name,url in object.items():
        return job(name, url)

url_list = [{'锦江': 'https://aa.aa.com/aaaaa/aa'}, {'青羊': 'https://bb.bb.com/bbbbb/bbb/'}, {'成华': 'https://cc.cc.com/ccccc/ccc/'}]

time1=time.time()
pool = Pool(4)
data_list=url_list
res = pool.map(job1,data_list)
time2=time.time()
print(res)
pool.close()
pool.join()
print('总共耗时:' + str(time2 - time1) + 's')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值