加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 用pycurl获取很多页面?

发布时间:2020-12-20 12:25:27 所属栏目:Python 来源:网络整理
导读:我想从网站上获得很多页面,比如 curl "http://farmsubsidy.org/DE/browse?page=[0000-3603]" -o "de.#1" 但是在python中获取页面数据,而不是磁盘文件. 有人可以发布pycurl代码来做到这一点, 或者快速urllib2(不是一次一个),如果可能的话, 或者说“忘记它,卷
我想从网站上获得很多页面,比如

curl "http://farmsubsidy.org/DE/browse?page=[0000-3603]" -o "de.#1"

但是在python中获取页面数据,而不是磁盘文件.
有人可以发布pycurl代码来做到这一点,
或者快速urllib2(不是一次一个),如果可能的话,
或者说“忘记它,卷曲更快更强大”?谢谢

解决方法

这是一个基于urllib2和线程的解决方案.

import urllib2
from threading import Thread

BASE_URL = 'http://farmsubsidy.org/DE/browse?page='
NUM_RANGE = range(0000,3603)
THREADS = 2

def main():
    for nums in split_seq(NUM_RANGE,THREADS):
        t = Spider(BASE_URL,nums)
        t.start()

def split_seq(seq,num_pieces):
    start = 0
    for i in xrange(num_pieces):
        stop = start + len(seq[i::num_pieces])
        yield seq[start:stop]
        start = stop

class Spider(Thread):
    def __init__(self,base_url,nums):
        Thread.__init__(self)
        self.base_url = base_url
        self.nums = nums
    def run(self):
        for num in self.nums:
            url = '%s%s' % (self.base_url,num)
            data = urllib2.urlopen(url).read()
            print data

if __name__ == '__main__':
    main()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读