python http请求及多线程应用
概述
- 今天, 使用
python3模拟下发包,http get请求, 然后 采用tomorrow多线程.
代码如下:
# coding=utf-8
from urllib import request
import json
from tomorrow import threads
import time
@threads(100)
def testgetHtml(url):
requests = request.urlopen(url)
return requests
start = time.time()
url = "https://www.baidu.com/"
print('begin')
responses = [testgetHtml(url) for i in range(100)]
# html = [(json.loads(response.read().decode('utf-8')))['total']
html = [response.read().decode('utf-8') for response in responses]
for x in html:
print(x)
tomorrow包准备
pip install tomorrow
运行环境遇到的问题
- 移动python目录后, pip 默认安装路径与实际项目不匹配. 现象来说就是: cd 进入项目目录后运行如上安装命令是成功的, 但是运行python程序依然找不到
tomorrow包, 开始怀疑默认pip路径安装问题. 解决方法步骤如下:- 更改了
path系统环境, 修改python 及 python\scripts 的路径, 不生效, 错误依旧. - 重新安装
pip. 方法: pip 官网下载后, 解压.tar.gz的格式, 然后python setup.py install安装成功, 错误消失
- 更改了
其他尝试未果
- 尝试一个方法内完成Request 和 response 读取显示.: 各种报错, 未继续.
- 可能的原因: 涉及异步过程, 无法合理追踪, 与预期的多线程有出入.
python http请求及多线程应用的更多相关文章
- Python标准库08 多线程与同步 (threading包)
Python主要通过标准库中的threading包来实现多线程.在当今网络时代,每个服务器都会接收到大量的请求.服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率.Python是一种 ...
- python 多进程开发与多线程开发
转自: http://tchuairen.blog.51cto.com/3848118/1720965 博文作者参考的博文: 博文1 博文2 我们先来了解什么是进程? 程序并不能单独运行,只有将程 ...
- Python Socket请求网站获取数据
Python Socket请求网站获取数据 ---阻塞 I/O ->收快递,快递如果不到,就干不了其他的活 ---非阻塞I/0 ->收快递,不断的去问,有没有送到,有没有送到,. ...
- Python编码/文件读取/多线程
Python编码/文件读取/多线程 个人笔记~~记录才有成长 编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...
- python网页请求urllib2模块简单封装代码
这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...
- 一行 Python 实现并行化 -- 日常多线程操作的新思路
春节坐在回家的火车上百无聊赖,偶然看到 Parallelism in one line 这篇在 Hacker News 和 reddit 上都评论过百的文章,顺手译出,enjoy:-) http:// ...
- iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战
UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高 ...
- 在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析
首先关于在python中单线程,多线程,多进程对cpu的利用率实测如下: 单线程,多线程,多进程测试代码使用死循环. 1)单线程: 2)多线程: 3)多进程: 查看cpu使用效率: 开始观察分别执行时 ...
- Python中的鸡肋多线程
作者:DarrenChan陈驰链接:https://www.zhihu.com/question/23474039/answer/269526476来源:知乎著作权归作者所有.商业转载请联系作者获得授 ...
随机推荐
- java常见3种文件上传速度对比和文件上传方法详细代码
在java里面文件上传的方式很多,最简单的依然是FileInputStream.FileOutputStream了,在这里我列举3种常见的文件上传方法代码,并比较他们的上传速度(由于代码是在本地测试, ...
- mysql查询出相同数据出现的次数,统计相同值的数量
1.可以使用count SELECT count(name='A' OR NULL) FROM table 2.用sum SELECT sum(if( = 'A', 1, 0)) FROM table ...
- Vue(八) 数字输入框组件案例
数字输入框是对普通输入框的扩展,用来快捷输入一个标准的数字,如图: 代码: <div id="app"> <input-number v-model=" ...
- 从零开始学Shell(一)
1.$表示普通用户,#表示超级用户.2.sh /home/path/script.sh3.chmod a+x script.sh 增加可执行权限 ./script.sh #./表示当前的 ...
- 用matlab生成mif文件
在FPGA中,rom模块的初始化文件分为两种,一种是hex文件,另外一种是mif文件,这两种文件都可以通过Quartus进行手工创建,进行手工输入数据,也可以借助于专用的文件编辑器完成编辑. 在此介绍 ...
- tomcat的LifecycleException异常
异常:start: org.apache.catalina.LifecycleException: tomcat版本:8 解决:将tomcat的版本换成tomcat6,问题解决了
- 云硬盘性能测试工具FIO介绍
一.云硬盘的性能衡量指标 云硬盘的性能指标一般通过以下几个指标进行衡量 IOPS:每秒的读写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的IOPS 总IOPS:每秒执行的I/O操作总次数 ...
- winform rar压缩包解压缩
/// <summary> /// 解压缩 /// </summary> /// <param name="path& ...
- Mysql 复制一个新表
1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来 ...
- Cannot find ./catalina.sh The file is absent or does not have execute permission This file is nee
从tomcat官网上下载了apache-tomcat-5.5.36.zip,在window xp系统里面解压以后,直接放在了linux服务器上. 进入tomcat/bin目录,执行启动的时候出现如下错 ...