Python 使用通常速度很快的urllib2进行刮取时,会由于一些因素而减慢速度-它们是什么?

Python 使用通常速度很快的urllib2进行刮取时,会由于一些因素而减慢速度-它们是什么?,python,loops,oop,inheritance,list-comprehension,Python,Loops,Oop,Inheritance,List Comprehension,我通常只编写函数式Python程序,但我已经决定采用面向对象的方法(我的第一个方法)来编写我当前的程序,即web scraper: import csv import urllib2 NO_VACANCIES = ['no vacancies', 'not hiring'] class Page(object): def __init__(self, url): self.url = url def get_source(self): sel

我通常只编写函数式Python程序,但我已经决定采用面向对象的方法(我的第一个方法)来编写我当前的程序,即web scraper:

import csv
import urllib2

NO_VACANCIES = ['no vacancies', 'not hiring']

class Page(object):
    def __init__(self, url):
        self.url = url

    def get_source(self):
        self.source = urllib2.urlopen(url).read()
        return self.source  

class HubPage(Page):
    def has_vacancies(self):
        return not(any(text for text in NO_VACANCIES if text in self.source.lower()))

urls = []
with open('25.csv', 'rb') as spreadsheet:
    reader = csv.reader(spreadsheet)
    for row in reader:
        urls.append(row[0].strip())

for url in urls:
    page = HubPage(url)
    source = page.get_source()
    if page.has_vacancies():
        print 'Has vacancies'
一些上下文:
hubbage
代表公司网站上典型的“工作”页面。我正在对
页面
进行子类化,因为我最终会为单个作业页面再次对其进行子类化,并且一些方法将仅用于提取单个作业页面的数据(这可能有些过分)

这是我的问题:我从经验中知道,
urllib2
,尽管它有批评者,但在做它所做的事情时非常快,即获取页面的源代码。然而,我注意到,在我的设计中,每个url的处理时间比我通常观察到的要长几个数量级

  • 是否涉及类实例化的事实(不必要, 也许吧
  • hubbage
    被继承的事实可能是原因吗
  • 当调用
    any()
    时,如果它包含一个列表理解(如此处所示),那么调用是否代价高昂