import requests
import json
import jsonpath
from concurrent.futures import ThreadPoolExecutor
print("名称\t最高价\t平均价\t最低价")
f = open("北京新发地菜价.txt","w")
def main(current):url = "http://www.xinfadi.com.cn/getPriceData.html"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}data = {"limit": "20","current": f"{current+1}","pubDateStartTime":"", "pubDateEndTime":"" ,"prodPcatid":"","prodCatid":"" ,"prodName": ""}parsePrint(url,headers,data)
def parsePrint(url,headers,data):res = requests.post(url,headers=headers,data=data)jsonbj = json.loads(res.text)# 解析数据name = jsonpath.jsonpath(jsonbj,"$..prodName")highPrice = jsonpath.jsonpath(jsonbj,"$..highPrice")avgPrice = jsonpath.jsonpath(jsonbj,"$..avgPrice")lowPrice = jsonpath.jsonpath(jsonbj,"$..lowPrice")# 打印信息for g in range(0,20):# 输出数据print(f"{name[g]}\t{highPrice[g]}\t{avgPrice[g]}\t{lowPrice[g]}\n")# 写入数据f.write(f"{name[g]}\t{highPrice[g]}\t{avgPrice[g]}\t{lowPrice[g]}\n")
if __name__ == '__main__':# 创立线程池with ThreadPoolExecutor(2) as t:for i in range(2):#爬取页数# 给子线程提交任务并执行t.submit(main,current = i)print("下载完成")f.close()
运行结果:
名称  最高价 平均价 最低价
绿豆芽 1.0 0.98    0.95大白菜 0.9 0.8 0.7
黄豆芽 0.9 0.88    0.85娃娃菜 1.1 1.0 0.9
番茄  2.3 1.95    1.6小白菜  1.5 1.35    1.2
番茄  3.0 2.3 1.6圆白菜  1.2 0.9 0.6
番茄  3.0 2.75    2.5紫甘蓝  1.5 1.35    1.2
黄瓜  3.0 2.3 1.6芹菜   1.3 1.05    0.8
黄瓜  4.0 3.5 3.0西芹   2.2 2.1 2.0
小黄瓜 5.5 4.95    4.4菠菜   5.5 4.75    4.0
茄子  3.0 2.4 1.8莴笋   2.0 1.7 1.4
长茄  4.0 3.0 2.0团生菜  4.0 3.5 3.0
线茄  6.0 4.0 2.0散叶生菜 5.5 4.75    4.0
广茄  2.5 1.85    1.2罗马生菜 4.8 4.5 4.2
冬瓜  0.9 0.85    0.8油菜   3.0 2.75    2.5
冬瓜  0.5 0.43    0.35香菜  7.0 6.0 5.0
毛冬瓜 1.2 1.0 0.8茴香   3.5 3.0 2.5
架豆  7.5 7.0 6.5韭菜   2.5 2.25    2.0
豆王  12.0    8.0 4.0苦菊   2.7 2.35    2.0
扁豆  7.0 6.0 5.0油麦菜  4.0 3.5 3.0
豇豆  4.0 3.0 2.0散菜花  4.3 3.95    3.6
白不老 12.0    11.0    10.0绿菜花 3.3 3.05    2.8下载完成

Python爬虫_线程池实例——北京新发地菜价相关推荐

  1. Python爬虫——使用线程池爬取同程旅行景点数据并做数据可视化

    大家好!我是霖hero 正所谓:有朋自远方来,不亦乐乎?有朋友来找我们玩,是一件很快乐的事情,那么我们要尽地主之谊,好好带朋友去玩耍!那么问题来了,什么时候去哪里玩最好呢,哪里玩的地方最多呢? 今天将 ...

  2. python爬虫利用线程池下载视频

    由于requests模块中,requests.get()是线程阻塞的,所有当有多个爬虫进行爬取时,那么单线程式爬虫是耗时比较长的,所以我们需要使用线程池,利用线程池来爬取耗时比较长的资源,这里我们使用 ...

  3. python停止线程池_详解python中Threadpool线程池任务终止示例代码

    需求 加入我们需要处理一串个位数(0~9),奇数时需要循环打印它:偶数则等待对应时长并完成所有任务:0则是错误,但不需要终止任务,可以自定义一些处理. 关键点 定义func函数处理需求 callbac ...

  4. python爬虫_抓取瓦片图片信息并将其拼接_以mapbar为例(适用交通工程类专业)

    python爬虫_抓取瓦片图片信息并将其拼接_以mapbar为例(适用交通工程类专业) 这次就以mapbar为例爬取道路交通拥堵情况 第一步,瓦片标号解析 第二步,拼url,然后下载 第三步,图片拼接 ...

  5. async spring 默认线程池_Spring boot注解@Async线程池实例详解

    这篇文章主要介绍了Spring boot注解@Async线程池实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从Spring3开始提供了@A ...

  6. mysql 关闭线程池_线程池安全的关闭方式

    对于一些定时任务或者网络请求服务将会使用线程池,当应用停机时需要正确安全的关闭线程池,如果处理不当,可能造成数据丢失,业务请求结果不正确等问题. 关闭线程池我们可以选择什么都不做,JVM 关闭时自然的 ...

  7. threadpoolexecutor创建线程池_线程池ThreadPoolExecutor源码分析

    什么是线程池 创建线程要花费昂贵的资源和时间,如果任务来了才创建那么响应时间会变长,而且一个进程能创建的线程数量有限.为了避免这些问题,在程序启动的时候就创建若干线程来响应出来,它们被称为线程池,里面 ...

  8. python爬虫_网易音乐歌单

    小白flag7 python爬虫_网易音乐歌单 准备 import os #存放文件处理 import time #程序运行时间计算 import sys #错误信息返回 预留 from seleni ...

  9. java 动态线程池_线程池的参数动态调整

    经典面试题 这次的文章还是绕回了我写的第三篇原创文章<有的线程它死了,于是它变成一道面试题>中留下的几个问题: 哎,兜兜转转,走走停停.天道好轮回,苍天饶过谁? 在这篇文章中我主要回答上面 ...

最新文章

  1. Tomcat学习总结(2)——Tomcat使用详解
  2. ubuntu8.10家庭使用(一)
  3. 计算机网络:浅谈HTTPS和加密
  4. 一台电脑同时添加git和bitbucket两个网站的ssh key
  5. 力扣 278.第一个错误的版本
  6. 8999元起!vivo X Fold折叠屏旗舰今日首销:采用航天级浮翼式铰链
  7. JDG战队与英特尔达成为期两年的冠名合作
  8. 网络人工智能研究方向有哪些?
  9. .Net魔法堂:发个带附件的邮件
  10. layout_gravity 属性和 gravity属性的区别
  11. redis 介绍与安装
  12. 进化论是个假说,目前解释生物现象最合理
  13. 书籍精品Android篇,拿好赶紧收藏
  14. svn update出现database is locked
  15. 高速公路上边有没有人脸识别摄像头_支小蜜初高中智慧校园人脸识别消费系统...
  16. Android Studio:使用SVN进行版本控制
  17. 刚刚,京东推出“小京鱼”平台和五款智能新品,全面押注IoT
  18. Java核心技术读书笔记01
  19. POL8901 LVDS转MIPI DSI 支持旋转图像处理芯片
  20. torch.sigmoid()、torch.nn.Sigmoid()和torch.nn.functional.sigmoid()三者之间的区别

热门文章

  1. jQuery实现瀑布流布局(1+X Web前端开发初级 例题)
  2. Codeforces-686C Robbers' watch
  3. LaTex 数学之矩阵
  4. 【蓝桥杯2022】- 数的拆分
  5. 【python】遍历log查找符合关键字的log
  6. linux p4使用心得
  7. 递归与递归方程T(N)=aT(N/b)+O(N^d)
  8. 2020年北京理工大学计算机学硕跨考上岸经验分享
  9. 第17课 项目成本管理
  10. CSS - 鼠标移入悬停显示下拉菜单(导航栏鼠标经过 hover 时出现二级菜单)