我正在打开一个具有100,000个URL的文件。我需要向每个URL发送一个HTTP请求并打印状态代码。我正在使用Python 2.6,到目前为止,我们研究了Python实现线程/并发性的许多令人困惑的方式。我什至看过python 并发库,但无法弄清楚如何正确编写此程序。有没有人遇到过类似的问题?我想通常我需要知道如何尽快地在Python中执行数千个任务-我想这意味着“同时”。
无捻解决方案:
from urlparse import urlparse
from threading import Thread
import httplib, sys
from Queue import Queue
concurrent = 200
def doWork():
while True:
url = q.get()
status, url = getStatus(url)
doSomethingWithResult(status, url)
q.task_done()
def getStatus(ourl):
try:
url = urlparse(ourl)
conn = httplib.HTTPConnection(url.netloc)
conn.request("HEAD", url.path)
res = conn.getresponse()
return res.status, ourl
except:
return "error", ourl
def doSomethingWithResult(status, url):
print status, url
q = Queue(concurrent * 2)
for i in range(concurrent):
t = Thread(target=doWork)
t.daemon = True
t.start()
try:
for url in open('urllist.txt'):
q.put(url.strip())
q.join()
except KeyboardInterrupt:
sys.exit(1)
这比扭曲的解决方案要快一点,并且使用的CPU更少。
本文向大家介绍python发送HTTP请求的方法小结,包括了python发送HTTP请求的方法小结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python发送HTTP请求的方法。分享给大家供大家参考。具体如下: 这里包含 Python 使用 GET/HEAD/POST 方法进行 HTTP 请求 1. GET 方法: 2. HEAD 方法: 3. POST 方法: 希望本文所述对大家的P
问题内容: 我正在运行Linux Web服务器,该服务器运行Python代码以通过HTTP从第三方API捕获实时数据。数据被放入MySQL数据库。我需要对许多URL进行大量查询,并且需要快速执行(更快=更好)。目前,我使用urllib3作为我的HTTP库。最好的方法是什么?我应该生成多个线程(如果有的话,有多少个?),并让每个查询都查询不同的URL?我很想听听您对此的想法- 谢谢! 问题答案: 如
本文向大家介绍python 使用 requests 模块发送http请求 的方法,包括了python 使用 requests 模块发送http请求 的方法的使用技巧和注意事项,需要的朋友参考一下 Requests具有完备的中英文文档, 能完全满足当前网络的需求, 它使用了urllib3, 拥有其所有的特性! 最近在学python自动化,怎样用python发起一个http请求呢? 通过了解 requ
本文向大家介绍利用python的socket发送http(s)请求方法示例,包括了利用python的socket发送http(s)请求方法示例的使用技巧和注意事项,需要的朋友参考一下 前言 这是个在写计算机网络课设的时候碰到的问题,卡了我一天,所以总结一下。 其实在之前就有用requests写过python爬虫,但是计算机网络要求更底层的实现,刚好我看到了[这篇文章]1结果发现他就是用socket
本文向大家介绍对Python发送带header的http请求方法详解,包括了对Python发送带header的http请求方法详解的使用技巧和注意事项,需要的朋友参考一下 简单的header 包含较多元素的header 以上这篇对Python发送带header的http请求方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
很多时候我们需要在页面打开的时候,读取远程的内容,然后在当前页面显示. 这就需要用到 http请求了. vue页面调用http请求 vuejs 内置了对发送http请求的支持. 只需要在对应页面的script 标签内加上对应的代码就好. 例如: 我们新增一个页面,叫 "博客列表页" : src/components/BlogList.vue, 内容如下: <template> <div >