Python中文
首页
教程
问答
标签
搜索
登录
注册
加速HTTP请求python和500
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个代码,它使用一个查询和一个时间范围(可能长达一年)从这个<a href="http://www.gulf-times.com/" rel="nofollow">newspaper</a>检索新闻结果。在</p> <p>结果被分页到每页10篇文章,因为我找不到增加它的方法,所以我为每个页面发出一个请求,然后检索每篇文章的标题、url和日期。每个周期(HTTP请求和解析)需要30秒到1分钟的时间,这非常慢。最终它将以500的响应代码停止。我想知道是否有办法加快速度或者一次提出多个请求。我只想检索所有页面中的文章细节。 代码如下:</p> <pre><code> import requests import re from bs4 import BeautifulSoup import csv URL = 'http://www.gulf-times.com/AdvanceSearchNews.aspx?Pageindex={index}&keywordtitle={query}&keywordbrief={query}&keywordbody={query}&category=&timeframe=&datefrom={datefrom}&dateTo={dateto}&isTimeFrame=0' def run(**params): countryFile = open("EgyptDaybyDay.csv","a") i=1 results = True while results: params["index"]=str(i) response = requests.get(URL.format(**params)) print response.status_code htmlFile = BeautifulSoup(response.content) articles = htmlFile.findAll("div", { "class" : "newslist" }) for article in articles: url = (article.a['href']).encode('utf-8','ignore') title = (article.img['alt']).encode('utf-8','ignore') dateline = article.find("div",{"class": "floatright"}) m = re.search("([0-9]{2}\-[0-9]{2}\-[0-9]{4})", dateline.string) date = m.group(1) w = csv.writer(countryFile,delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL) w.writerow((date, title, url )) if not articles: results = False i+=1 countryFile.close() run(query="Egypt", datefrom="12-01-2010", dateto="12-01-2011") </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>最慢的可能是服务器,因此并行化http请求将是提高代码运行速度的最佳方法,尽管要加快服务器响应速度几乎无能为力。在<a href="http://www.ibm.com/developerworks/aix/library/au-threadingpython/" rel="nofollow">IBM</a>上有一个很好的教程,教你如何做到这一点</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
1 回答
如何在python中从数据帧列表中删除引号
9 回答
如何在python中从数据帧创建列表
8 回答
如何在Python中从数据帧创建嵌套的JSON
2 回答
如何在Python中从数据帧显示wordcloud
10 回答
如何在Python中从数据帧的时间戳中删除字符
6 回答
如何在Python中从数据帧绘制简单绘图?
8 回答
如何在python中从数据帧行提取具有特定长度的范围?
2 回答
如何在python中从数据帧设置dict中的值
10 回答
如何在Python中从数据库中获得一个结果
8 回答
如何在python中从数据框中绘制分类条形图
2 回答
如何在Python中从数据框中选择特定细节?
8 回答
如何在python中从数据集中删除unicode
6 回答
如何在python中从数据集中删除某些数值?
2 回答
如何在python中从数据集中选择行
9 回答
如何在Python中从数组中删除元素
10 回答
如何在python中从数组中删除单个倒逗号?
3 回答
如何在python中从数组中删除对象?
9 回答
如何在python中从数组中删除引号
2 回答
如何在python中从数组中删除所有最小值
6 回答